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

关于node单线程疑问?

关于node单线程疑问?

素胚勾勒不出你 2018-07-13 07:02:45
既然node是单线程的,那么假如十个用户同时去请求服务器查询修改同一个数据,node这时只能处理一个请求,只能一个一个来执行.let a='test'router.get('/test/match',function(req,res){        /*修改 a*/     }那么node怎么做到请求相互之间互不干扰的?因为是排队执行,像上面的全局变量a被修改后,下一个请求a变量值已经改变,会影响到下个请求处理.
查看完整描述

3 回答

?
Helenr

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

node 确实存在这个问题,所以在处理这部分的时候要特别注意。 
单纯你的例子的话,放在回调函数内部,就不会影响其他用户了

router.get('/test/match',function(req,res){ 
    let a='test'
    /*修改 a*/}


查看完整回答
反对 回复 2018-07-20
?
慕容3067478

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

其实在任何情况下,都应该减少全局变量的使用,可以使用纯函数来避免这个问题

查看完整回答
反对 回复 2018-07-20
  • 3 回答
  • 0 关注
  • 239 浏览

添加回答

举报

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