Я пытаюсь использовать pg-pool для запроса базы данных Postgresql. А затем экспортируйте эти данные в API экспресс-отдыха Node.js.
Вот моя функция экспорта.
exports.getDashboard = function(req, response, next) {
let returnData = fetchData();
return response.status(200).json(returnData);
};
Что вызывает fetchData ();
fetchData = async function() {
let returnData = [];
returnData.languages = await getLatestLanguages();
return returnData;
};
Какие вызовы getLatestLanguages ()
getLatestLanguages = function() {
pgPool.pool.query(
'SELECT * FROM "WordLanguage" ORDER BY id DESC LIMIT 30 ;',
(error, results) => {
if (error) {
throw error;
}
return results.rows;
}
);
}
Если я помещу console.log(results.rows)
до того, как getLatestLanguages () вернет results.rows, я получу данные, записанные на консоль.
Однако объект не возвращается в fetchData. Я проверил это, зарегистрировав returnData на консоль, прежде чем он будет возвращен в exports.getDashboard ();
Я считаю, что моя проблема связана с асинхронной природой pg-pool, поэтому я попытался сделать свою функцию асинхронной с ожиданием, но это не помогло.
Что я делаю не так?