在expressjs app.VERB调用中next()和next('route')有什么区别?
该文档阅读:
app.VERB()方法在Express中提供路由function,其中VERB是HTTP动词之一,比如app.post()。 可能会给出多个callback,所有处理都是平等的,并且像中间件一样行为,除了这些callback可能会调用next('route')来绕过剩余的路由callback之外。 这种机制可以用来执行路线上的先决条件,然后在没有理由继续匹配路线时将控制权传递给后续路线。
他们是什么意思“绕过剩余的路线callback?”? 我知道next()
会将控制权交给下一个匹配的路由。 但是… next('route')
…什么function将得到控制…?
5分钟后回答我自己的问题时,我讨厌它。 next('route')
是使用路由中间件的时候。 所以如果你有:
app.get('/forum/:fid', middleware1, middleware2, function(){ // ... })
函数middleware1()有机会调用next()
将控制权交给中间件2,或者next('route')
将控制权交给下一个匹配的路由器。