我的示例是一个简单的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)
当客户端连接时,变量由客户端是否具有cookie来定义。但是,如果多个客户端几乎同时连接怎么办? Node如何处理它?</ p>
客户端是否可能混淆变量,因为if / else语句在切换之前发生?我是否应该在每个if / else部分中放置2个开关副本?
或者没有区别?
答案 0 :(得分:0)
每个连接都是Node中自己的“堆栈”,因此它们将是独立的。实际上,每个连接都有自己的req
对象的副本/实例,而您编写的代码仅适用于req
个对象。存在的所有其他req
对象都是它们自己的堆栈。
代码将按顺序发生,因此您可以安全地在切换之前使用if / else。