我有一个快速的Node.js应用在多个用户发出请求到服务器,以获得积分,改变他们的电子邮件地址,与其他用户互动等Express.js请求隔离
我的服务器代码使用相当几个setTimeouts,我想知道是否有可能不同的用户请求相互腐败。
编辑: 这里有一个更好的例子:
我有这样的代码:
app.post('/webhooks/email', function (req, res, next) {
var storeRequestInDataBase = function(req, res, next) {Writes Request Data To Database};
setTimeout(storeRequestInDataBase, 10000, req, res, next);
res.send(200, 'Message Received');
});
现在,如果我得到10个请求第二次从不同的用户,其他用户的请求来之前的setTimeout为第一个用户。所以,我想知道是否存在一个范围风险,其中最后一个请求是由setTimeout为第一个用户处理的。
我已经测试过这个,而且事情似乎有效,但我关注的是角落案例。
你有没有考虑过实施数据库事务? – Kamrul
你能发布有问题的代码吗?你问的是可能的,但它是否会发生在你身上将取决于变量作用域以及代码的结构等。 – dc5