node中全局变量使用疑问?

发布于 2022-09-07 20:47:23 字数 363 浏览 7 评论 0

这样一个场景:

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来操作?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

孤城病女 2022-09-14 20:47:23

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

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

装迷糊 2022-09-14 20:47:23

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

比如,我有这么一段程序

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

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

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

浮生未歇 2022-09-14 20:47:23

楼主需要的可能是cookie,而不是全局变量

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文