Функция на php Для более удобного разбора упростил , в действительности она сложнее, много джоинов, разбор массивов и сбор новых, обращение к апи сторонних хостов и т.д. 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 Все бы ничего, но не могу догнать как результат выполнения запроса поместить в глобальную константу, типо Code: knex('users').where('id', 1).then( rows => { console.log(rows)}) // rows надо в глоб const userInfo Различные вариации из гугла и док работают только внутри then() или внутри async/await функций, в общем внутри {} или () Как в JS сделать аналог этого? Code: $country_name = $this->db->where('id', $countryid)->get('countries')->row()->name; так, что бы переменная была глобальной и я мог использовать её во всем приложении, повторно не обращаясь за ней к бд и не обарачивая пять функций в еще одну функцию в которой доступна эта переменная
Не уже ли здесь нет знатоков node js? максимум чего пока добился, обернуть все в async, похоже другой реализации нет Code: (async () => { const userInfo = await knex('users').where('id', '1'); console.log(userInfo[0].username); })();