混淆了节点顺序规则(同步/asynchronous)

我的例子是一个简单的HTTP服务器:

http.createServer((req, res) => { if(req.method === `GET`){ if(req.headers.cookie === undefined){ let x = 1 let y = 2 let z = 30 } else{ let x = 10 let y = 20 let z = 3 } switch(req.url){ case `/`: // >>>> I need the appropriate variables here for the same client <<<< break case `/page`: // >>>> or here <<<< break default: res.statusCode = 404 res.end(`Error 404`) } } }).listen(3000) 

当客户端连接时,variables由客户端是否有cookie来定义。 但是如果多个客户几乎同时连接呢? 节点如何处理?

客户端是否有可能混淆variables,因为if / else语句发生在交换机之前? 我是否应该在每个if / else部分中放置2个开关副本?

还是没有区别?

每个连接都是Node中自己的“堆栈”,所以它们将是独立的。 实际上,每个连接都有它自己的req对象的副本/实例,并且您编写的代码只在该req对象上工作。 所有其他的req对象都是自己的堆栈。

代码将按顺序发生,所以你可以安全地在开关之前有if / else。