nodejs / express:调用next()会自动返回它调用的函数吗?

时间:2012-06-05 15:02:30

标签: node.js express

只是想从头脑中解决这个问题:

在处理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)(自动)将返回调用它的函数?

2 个答案:

答案 0 :(得分:3)

调用next() 不会暂停执行,但是return会这样做,所以返回next()会返回。

答案 1 :(得分:2)

是的,如果出现错误,两者都会被调用。你想做的事:

if(err) {
  return next(err);  
}