Node.js与快速抛出错误与下一个(错误)

有人可以在适当的时候阐述一下node.js Express应用程序抛出如下这样的错误:

throw new Error('my error'); 

或通过通常标记为“next”的callback来传递此错误,如下所示:

 next(error); 

你能解释一下他们每个人在快速应用的情况下会做什么?

例如,下面是一个处理URL参数的函数:

 app.param('lineup_id', function (req, res, next, lineup_id) { // typically we might sanity check that user_id is of the right format if (lineup_id == null) { console.log('null lineup_id'); req.lineup = null; return next(new Error("lineup_id is null")); } var user_id = app.getMainUser()._id; var Lineup = app.mongooseModels.LineupModel.getNewLineup(app.system_db(), user_id); Lineup.findById(lineup_id, function (err, lineup) { if (err) { return next(err); } if (!lineup) { console.log('no lineup matched'); return next(new Error("no lineup matched")); } req.lineup = lineup; return next(); }); }); 

在行注释“/ /我应该在这里创build自己的错误? 我可以使用“抛出新的错误('xyz')”,但究竟是什么呢? 为什么通常将错误传递给“next”callback更好?

另一个问题是 – 我怎么得到“抛出新的错误('xyz')”,以显示在控制台以及浏览器,当我在开发?

通常,expression式遵循传递错误而不是抛出它的方式,对于程序中的任何错误,您可以将错误对象传递给“next”,还需要定义error handling程序,以便传递给下一个错误的所有错误都可以处理正确

http://expressjs.com/guide/error-handling.html