这样一个场景:
let g=''
router.get('/',function(req,res,next){
/*查数据库修改g*/
g='date'
}
router.get('/next',function(req,res,next){
/*依赖g进行操作*/
}
用户每次先进入/路由赋值全局g,/next路由需要根据g进行操作,如果空值跳转/,不是空值进行下一步操作.
假如用户A先进入,修改g='dataA',然后用户B进入修改g='dataB'.如果此时A用户请求/next,此时的g值是应该是dataB,但是实际上会根据dataA来进一步操作,g是全局公用变量,B在A后面进入,请问一下为什么会根据dataA来操作?
node模块中创建的所有变量都是局部变量,从头到尾都是在闭包里玩。
全局变量只能用node提供的,可以用global