2

只是想摆脱我的想法:

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

4

2 回答 2

3

调用next() 不会停止执行,但return会停止,因此return next()会返回。

于 2014-04-02T14:03:22.970 回答
2

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

if(err) {
  return next(err);  
}
于 2012-06-05T15:58:53.507 回答