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

next()的处理

scott老师,我想请问一下,next()后执行的是位置上的下一个,还是逻辑上的下一个?

正在回答

2 回答

楼主是在编写路由规则么,如果是的话,是指符合路由规则的下一个控制器,比如(下面是简写的代码哈)

app.use('/test/*',function(req,res,next){
    next();
});
app.get('/hahah/*',function(req,res){
    console.log('dassadd');
})
app.get('/test/user',function(req,res){
    console.log('.................');
})

在浏览器http://localhost:3000/test/user时,它先进入use哪个handle进行处理(这个一般叫做预处理,中间件),然后下一个是/hahah/*,不符合路由规则,再下一个是/test/user,符合,然后就进入这个handle尽心处理了

这么说,楼主可否理解

0 回复 有任何疑惑可以回复我~
#1

Jsamchow 提问者

非常感谢!
2015-12-14 回复 有任何疑惑可以回复我~
#2

Jsamchow 提问者

可能还有点疑惑,想再向您请教一下,如果不加next(),会不会经过use的那一步呢?(没有自己测试,见谅)
2015-12-14 回复 有任何疑惑可以回复我~
#3

子木李 回复 Jsamchow 提问者

会的,但是不会进入下面的get的路由处理,所以,可能会报错,use一般用来加载中间,,get这些路由函数才是真正对请求进行了处理,更详细的内容,建议楼主可以阅读下express的文档
2015-12-14 回复 有任何疑惑可以回复我~

感谢,明白了,就是和请求的路由有关,预处理是必经的处理,然后next()就是实际请求的路由了。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
node建站攻略(二期)——网站升级
  • 参与学习       51940    人
  • 解答问题       408    个

帮助你深入前后端开发留下的迷惑,为进一步自学打下基础

进入课程

next()的处理

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信