CNode

app.use() 中执行顺序

Sstepli1010发布于12 年前最后回复12 年前6 回复13430 浏览0 收藏
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)

Y
youxiachai#1·12 年前

use的话,应该是要用中间件了吧,这个是有约定的.. 得按照这个约定写函数

function (req, res, next){

next() // 调用的话,继续向下传递.. 不调用就终止
}
S
stepli1010#2·12 年前
引用 youxiachaiuse的话,应该是要用中间件了吧,这个是有约定的.. 得按照这个约定写函数

哦,原来是这样,3Q。还有个问题,app.use(app.router)和routes(app)之间是什么关系,前者是用来配置url的,那后者怎么个原理?

A
asoedarren#3·12 年前

4.0已经取消app.use(app.router)

S
stepli1010#4·12 年前
引用 asoedarren4.0已经取消app.use(app.router)

4.0中怎么用,能给个demo吗?谢了哈。

Y
youxiachai#5·12 年前
引用 asoedarren4.0已经取消app.use(app.router)

@stepli1010

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

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

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

Y
youxiachai#6·12 年前
引用 youxiachaiuse的话,应该是要用中间件了吧,这个是有约定的.. 得按照这个约定写函数

@stepli1010 不用管就行了....

直接写restful 接口就行.. 例如

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

完事收工...

后者其实就是个小技巧

例如

module.exports = function (app) {

}

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

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