app.use() 中执行顺序
发布于 10 年前 作者 stepli1010 12560 次浏览 最后一次编辑是 8 年前
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吗?谢了哈。

@stepli1010

其实不要用app.router 就行了…

3.0 后期其实也早就不推荐用app.router…(这个是在 express 的issue 讨论上面看到的.具体哪个,我也不知道,反正有天看到有人讨论这个…)

反正http verb 该怎么写就怎么写

@stepli1010 不用管就行了…

直接写restful 接口就行… 例如

app.get('/' , function(req, res) {
})

完事收工…

后者其实就是个小技巧

例如

module.exports = function (app) {

}

这样就可以在一个文件里面写逻辑了…其实还是要写url 的… 用了一个小技巧方便管理查看

回到顶部