Функция на 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;
так, что бы переменная была глобальной и я мог использовать её во всем приложении, повторно не обращаясь за ней к бд и не обарачивая пять функций в еще одну функцию в которой доступна эта переменная
let data; someFn().then((res) => data = res;)– SwaD Nov 08 '22 at 18:41