【发布时间】:2020-09-29 19:28:58
【问题描述】:
我是 NodeJS 的新手,正在学习如何进行数据库调用。
我的数据库调用正在运行,保存数据的请求反映在数据库中。我想将 save call 的响应发送给客户端(前端)
但我无法返回回复。 await 似乎在 file1 中不起作用。
感谢任何帮助或参考。
我的代码
file1 与 DB 连接并调用具有保存调用的 file2
app.post('/',async (req,res) =>{
try{
const val = await gameEngine.processRequest(req.body,res);
console.log(val) // prints { status: 'READY', token: Promise { <pending> } }
res.json(val);
} catch(err) {
res.json({message:err });
}
});
进行保存调用的文件 2
async function processRequest(body,res){
if(body.Request === "START")
{
return await {"status":"READY", "token":getNewDBToken(res)};
}
return {"status":"Invalid"};
}
async function getNewDBToken(res) {
try{
const status = new statusDataBase({gameStatus: createBoard()});
const saved = await ((status.save()));
console.log(saved); // prints the response as expected.
return await saved;
}
catch(err)
{res.json({message: "err1"});}
}
注意到虽然 file2 中的 console.log 被首先调用,但它在 file1 的控制台日志之后被记录。
【问题讨论】:
-
已尝试在所有地方使用 await。
-
已经通过this,但无法解决问题。