只是想从头脑中解决这个问题:
在处理Express / Nodejs中的路由时,我想知道调用next()
是否总是返回从中调用的函数?考虑一下:
app.get('/users/:id?', function(req, res, next){
//just as as example
var err = doValidation(req);
if (err) {
next(err);
}
next(); //will this ever be called?
});
如果出现错误,是否会调用第二个next(),还是调用第一个next(err)
(自动)将返回调用它的函数?
答案 0 :(得分:3)
调用next()
不会暂停执行,但是return
会这样做,所以返回next()会返回。
答案 1 :(得分:2)
是的,如果出现错误,两者都会被调用。你想做的事:
if(err) {
return next(err);
}