{ cons-6ren">
gpt4 book ai didi

mysql - 在 Nodejs 路由中执行多个查询

转载 作者:行者123 更新时间:2023-11-29 09:32:36 24 4
gpt4 key购买 nike

我有 Node.js post 路由,其中​​我使用 async/await 按顺序执行多个查询。

router.post("/foo", async (req, res) => {
const qr1 = "str1";
await db.query(qr1); // Works fine
const qr2 = "str2";
await db.query(qr2); // Works fine
const qr3 = "str3";
await db.query(qr3, async (err, result) => {
if (err) {
console.log(err);
}
if (result.length > 0) {
// Required data is received – That part works
// do something and continue to step 4
}
});
// step 4 – Never gets here
});

所有执行表操作(即删除、插入等)的查询都可以正常工作。一旦我进入选择查询,我就会收到所需的数据,但我需要继续执行下一步,但这不会发生。我知道我可以通过将步骤 4 嵌套在步骤 3 中来完成我需要的任务,但我想知道是否有其他方法可以做到这一点。

最佳答案

您遇到的问题是注释 //步骤 4 立即执行,而 async(err 代码在查询 3 执行时异步执行。以下是为实现结果而更正的代码:

router.post("/foo", async (req, res) => {
try {
const qr1 = "str1";
await db.query(qr1); // Works fine
const qr2 = "str2";
await db.query(qr2); // Works fine
const qr3 = "str3";
const q3Result = await db.query(qr3);
console.log('step 4');
// step 4 – Should work fine
}
catch(err) {
console.log(err);
}

});

关于mysql - 在 Nodejs 路由中执行多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58381004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com