Я пытаюсь вернуть результат запроса node-postgres и сохранить его в переменной. Я могу прекрасно управлять console.log, но не могу найти способ вернуть результат, чтобы он был доступен за пределами метода запроса. Я в растерянности и знаю, что, должно быть, упускаю что-то очевидное (или несколько очевидных вещей), потому что, если это невозможно сделать, я не понимаю смысла node-postgres, поскольку все, что я когда-либо смогучтобы сделать, это записать мои результаты на консоль.
Я попробовал код ниже, вместе с версией, использующей обещания, и оба получают тот же результат, "неопределенный". Console.log внутри else работает нормально, но возврат не делает результат доступным для остальной части функции. В приведенном ниже коде мой возврат возвращается как «неопределенный», как на его месте будет console.log.
var selectFrom = function(data, table, condition) {
var queryResult;
pool.query(`SELECT ${data} FROM ${table} ${condition}`, function(err, result) {
if(err) { console.log(err); }
else { queryResult = result.rows[0][data]; }
})
pool.end();
return queryResult;
}
var result = selectFrom('amount','total_nonfarm_monthly_sa', `WHERE month='2019-08-31'`);
console.log(result);