app.use() 中执行顺序
app.use(function(){console.log("1")});
app.use(function(){console.log("2")});
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use()
是按顺序来执行的,可是遇到我自己的写的函数就不往下执行了,是不是我自己的函数中没有next()
, 而且其他的模块,比如 express.json()
中都有 next()
, 新手,求讨论。
6 回复
use的话,应该是要用中间件了吧,这个是有约定的… 得按照这个约定写函数
function (req, res, next){
next() // 调用的话,继续向下传递.. 不调用就终止
}
哦,原来是这样,3Q。还有个问题,app.use(app.router)和routes(app)之间是什么关系,前者是用来配置url的,那后者怎么个原理?
4.0已经取消app.use(app.router)
4.0中怎么用,能给个demo吗?谢了哈。
其实不要用app.router 就行了…
3.0 后期其实也早就不推荐用app.router…(这个是在 express 的issue 讨论上面看到的.具体哪个,我也不知道,反正有天看到有人讨论这个…)
反正http verb 该怎么写就怎么写
@stepli1010 不用管就行了…
直接写restful 接口就行… 例如
app.get('/' , function(req, res) {
})
完事收工…
后者其实就是个小技巧
例如
module.exports = function (app) {
}
这样就可以在一个文件里面写逻辑了…其实还是要写url 的… 用了一个小技巧方便管理查看