gpt4 book ai didi

node.js - 我应该异步将数据保存到数据库吗

转载 作者:太空宇宙 更新时间:2023-11-03 23:56:55 26 4
gpt4 key购买 nike

我正在使用 Node Express 和 Postgress。我不确定我想做的是一个好的做法还是一个很大的错误。当我已经向客户端返回结果后,将数据异步保存到数据库。

我尝试用 console.log 来演示它,以检查我的服务器在保存过程中是否会被阻止。

在这里您可以看到 status 路由和 statusB 路由。

  app.get("/statusB", async (req, res) => {
return res.status(200).send("testAAA");
});

app.get("/status", async (req, res) => {
const userStats = await UserController.getData("id")
const x = test();

return res.status(200).send(userStats);
});

async function test() {
return new Promise(() => {
for (let x = 0; x < 10000; x++) {

setTimeout( () => {
console.log(x)
}, 5000);
}
})
}

我想要发生的情况是,如果我发送 /status 并在发送 statusB 之后立即发送。

我希望输出是:
/status 将返回 userStats 数据
/StatusB 返回“testAAA”
并且计数器将异步运行。


但实际输出是:
- /status 返回 userStats 数据
- 反跑
- /StatusB 仅在计数器完成后返回“testAAA”

控制台日志只是测试我是否可以异步获取数据并将其保存到数据库,而不是控制台日志。

最佳答案

取决于您的业务案例。

如果您的客户可以获取 200 OK 状态代码,即使保存实际上可能失败,那么当然,您可以在响应后异步执行此操作。

在其他情况下,您需要在请求中进行保存,并且只有在确定一切都安全无误后才做出响应。

关于node.js - 我应该异步将数据保存到数据库吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56683993/

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