请求中的值是否会在回调中混淆?

问题描述 投票:0回答:1

我是Node.js的新手,我一直在阅读与此问题相关的问题和答案,但仍然不太确定我是否完全理解了我的案例中的概念。

建议的代码

router.post('/test123', function(req, res) { 
someAsyncFunction1(parameter1, function(result1) {
  someAsyncFunction2(parameter2, function(result2) {
    someAsyncFunction3(parameter3, function(result3) {
       var theVariable1 = req.body.something1;
       var theVariable2 = req.body.something2;
    )}
  )}
});

问题我假设有一些变量(something1和something2)会同时向某个地方发出多个(可能是10 +,100 +或其他)请求(例如,对/ test123的ajax请求,如上所示) 。根据this的说法,一个用户的theVariable1和theVariable2不可能与其他用户的req.body.something1和req.body.something2混淆(即被覆盖)。我想知道当有多个回调时(如上所述三个,或者十个,以防万一)这是否属实。

并且,我还考虑使用res.locals从回调中保存一些数据(而不是使用theVariable1和theVariable2,但是这样做是个好主意,因为客户端会同时发出多个请求,因此数据不会被覆盖?

node.js express callback
1个回答
1
投票

每个请求Node.js / Express服务器都会生成一个新的req对象。

所以在router.post('/test123', function(req, res)行中,作为参数传入的req对象对于该HTTP连接是唯一的。

您不必担心多个函数或回调。在传统的应用程序中,如果我有两个对象catdog,我可以传递给listen函数,我会回到meowbark。即使只有一个listen功能。这就是你可以查看Express应用程序的方式。即使您拥有所有这些getpost函数,每个用户的请求也会作为唯一实体传递给它们。

© www.soinside.com 2019 - 2024. All rights reserved.