何时使用next()并在Node.js中返回next()
场景:考虑以下是节点Web应用程序的代码部分。
app.get('/users/:id?', function(req, res, next){
var id = req.params.id;
if (id) {
// do something
} else {
next(); //or return next();
}
});
问题:我正在检查哪一个只用next()
或return next()
。上面的示例代码对两者都完全相同,并且没有显示执行上的任何差异。
问题:有人可以对此有所了解,何时使用next()
以及何时使用return next()
和一些重要区别?
有些人总是写return next()
是为了确保在触发回调后执行停止。
如果你不这样做,你就有可能在第二次触发回调,这通常会产生毁灭性的结果。你的代码很好,但我会把它重写为:
app.get('/users/:id?', function(req, res, next){
var id = req.params.id;
if(!id)
return next();
// do something
});
它为我节省了缩进级别,当我稍后再次阅读代码时,我确信next
没有被调用两次。