app.use('/path/:id?',function (req, res, next){})//这句是什么意思?还有应用的场景?求大神指点。。。
 发布于 11 年前  作者 yunfei  11350 次预览  最后一次回复是 8 年前  来自  
6 回复
kenticny

app.use是使用中间件,第一个参数是router,然后是回调函数,next是执行完成后会执行下一个,应用场景个人理解和java里面的filter差不多的…

dlutwuwei

java里的filter由于静态语言的限制,远没有nodejs里使用中间件方便,所以想spring框架用filter不多,基本都在controller解决问题,只能说,node的异步编程模式和filter很契合。

tulayang

var stack = []; app.use(path1, fn1) => stack.push(fn1); app.use(path2, fn2) => stack.push(fn2); …

当请求req.url中pathname === '/path/xxxxxx?'时, stack.forEach(function(fn) { fn.qpply(调用环境, 调用参数); });

use相当于压栈

jinhezx

:id? 是正则匹配

yunfei

哦。。谢谢各位!!

jiazurongyu2015

前面的都回答了,路由中间件的派遣模式 这个在处理static层之前。 next()是关系到中间件顺序的,要理解应用场景 可以好好看一次connect第三方模块的源码