【发布时间】:2019-08-13 19:13:56
【问题描述】:
我正在尝试使用 pg-pool 来查询 Postgresql 数据库。然后将这些数据导出到 Node.js express rest API。
这是我的导出函数。
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;
}
);
}
如果我在 getLatestLanguages() 返回 results.rows 之前放置 console.log(results.rows),那么我会将数据记录到控制台。
但是该对象并未返回到 fetchData。我通过在将 returnData 返回到exports.getDashboard() 之前将其记录到控制台来对此进行了测试;
我认为我的问题与 pg-pool 的异步性质有关,因此我尝试使用 await 使我的函数异步,但这没有帮助。
我做错了什么?
【问题讨论】:
标签: javascript node.js postgresql async-await