CNode

app.use('/path/:id?',function (req, res, next){})//这句是什么意思?还有应用的场景?求大神指点。。。

Yyunfei发布于12 年前最后回复9 年前6 回复11572 浏览0 收藏
查看回复

回复 (6)

K
kenticny#1·12 年前

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

D
dlutwuwei#2·12 年前
引用 kenticnyapp.use是使用中间件,第一个参数是router,然后是回调函数,next是执行完成后会执行下一个,应用场景个人理解和java里面的filter差不多的..

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

T
tulayang#3·12 年前

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

J
jinhezx#4·12 年前

:id? 是正则匹配

Y
yunfei#5·12 年前

哦。。谢谢各位!!

J
jiazurongyu2015#6·9 年前

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

参与回复
登录后即可参与回复。登录