gpt4 book ai didi

javascript - ExpressJS : How to know when a request has finished?

转载 作者:数据小太阳 更新时间:2023-10-29 04:29:20 25 4
gpt4 key购买 nike

在 NodeJS 之上的 ExpressJS 中,我有一些这样的代码:

app.get('/keys/readresults/:keyname', basic_auth, function(req,res){
res.writeHead(200, {'content-type': 'text/json'});
setInterval(
go_to_database_and_get('stuff', function (database_replies) {
res.write(database_replies)
})
,5000);
});

为了简单起见,代码是这样写的(如果有人想要真正的代码,我很乐意将其发布到某个 pastebin 中)。

当我 curl -u username:password <a href="http://localhost:4000/keys/readresults/key" rel="noreferrer noopener nofollow">http://localhost:4000/keys/readresults/key</a> 时会发生什么正是我想要发生的事情:我得到一个 200 状态 header ,它检查数据库是否有我想要的任何结果并将响应写回给我,然后等待 5 秒并在数据库中搜索新结果并再次写入响应,以此类推,每隔 5 秒。

问题是当我退出 curl 时,循环会一直持续下去。 我如何告诉 express 或 nodejs 它应该结束该循环(我猜是用 clearInterval)一旦请求结束?

最佳答案

req.on("close")

就这么简单

app.get('/keys/readresults/:keyname', basic_auth, function(req,res){
res.writeHead(200, {'content-type': 'text/json'});
var no = setInterval(
go_to_database_and_get('stuff', function (database_replies) {
res.write(database_replies)
});
,5000);
req.on("close", function() {
clearInterval(no);
});
});

关于javascript - ExpressJS : How to know when a request has finished?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7062885/

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