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

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

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

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相当于压栈

:id? 是正则匹配

哦。。谢谢各位!!

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

回到顶部