为了账号安全,请及时绑定邮箱和手机立即绑定

node中全局变量使用疑问?

node中全局变量使用疑问?

繁星coding 2018-08-18 14:48:17
这样一个场景: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来操作?
查看完整描述

2 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

node模块中创建的所有变量都是局部变量,从头到尾都是在闭包里玩。

全局变量只能用node提供的,可以用global


查看完整回答
反对 回复 2018-08-19
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

全局公用不是这么公用的,按你这个想法加大家用,如果这样你帐户里的钱,很容易就变我的钱了,
全局是针对用户进程的

比如,我有这么一段程序

var ifunction add(){
    console.log(i+2)
}

第一次执行 输出为2,第二次执行也为2,无论你执行多少次,始终输出2

按你的理解的话,第一次输出为2,第二次就为4了,你说这可能么?


查看完整回答
反对 回复 2018-08-19
  • 2 回答
  • 0 关注
  • 818 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信