0

Функция на php

Для более удобного разбора упростил , в действительности она сложнее, много джоинов, разбор массивов и сбор новых, обращение к апи сторонних хостов и т.д.

public function searchEvent(){
       $countryid = $this->input->post('country_id');
       $productid = $this->input->post('product_id');
       $colorid = $this->input->post('color_id');
   if ($countryid == null && $productid == null && $colorid == null) {
       $params = array('owner' => '0', 'active' => '1');
   }
   if ($countryid != null && $productid == null && $colorid == null) {
       // ключевой момент, надо получить результат запроса бд в переменную
       $country_name = $this->db->where('id', $countryid)->get('countries')->row()->name;

       $params = array('owner' => '0', 'active' => '1', 'country' => $country_name);
   }
   if ($countryid != null && $productid != null && $colorid == null) {
       // ключевой момент, надо получить результат запроса бд в переменную
       $country_name = $this->db->where('id', $countryid)->get('countries')->row()->name;
       $product_name = $this->db->where('id', $productid)->get('products')->row()->name;

       $params = array('owner' => '0', 'active' => '1', 'country' => $country_name, 'product' => $product_name);
   }
   if ($countryid != null && $productid != null && $colorid != null) {
       // ключевой момент, надо получить результат запроса бд в переменную
       $country_name = $this->db->where('id', $countryid)->get('countries')->row()->name;
       $product_name = $this->db->where('id', $productid)->get('products')->row()->name;
       $color_name = $this->db->where('id', $colortid)->get('colors')->row()->name;

        $params = array('owner' => '0', 'active' => '1', 'country_id' => $productid, 'country_id' => $productid, 'color' => $color_name)
   }

   $q = $this->db->ger_where('items', $params)->result();

   print_r($q);

}

На php все до безобразия просто, теперь тот же самый код мне нужно реализовать в node js Все бы ничего, но не могу догнать как результат выполнения запроса поместить в глобальную константу, типо

knex('users').where('id', 1).then( rows => { console.log(rows)}) // rows надо в глоб const userInfo

Различные вариации из гугла и док работают только внутри then() или внутри async/await функций, в общем внутри {} или ()

Как в JS сделать аналог этого?

$country_name = $this->db->where('id', $countryid)->get('countries')->row()->name;

так, что бы переменная была глобальной и я мог использовать её во всем приложении, повторно не обращаясь за ней к бд и не обарачивая пять функций в еще одну функцию в которой доступна эта переменная

0 Answers0