express用に生成されたテンプレートに従います。 app.js
では私の理解パー次のスニペットExpressミドルウェア・エラー・ハンドラー
app.use('/users', users);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
があり、ミドルウェアは、ハンドラをエラーに404件のハンドラへapp.use('/users', users)
から順に実行されます。私の質問は、どのようにエラーハンドラに到達し、この行を実行することが可能になりますres.status(err.status || 500);
?失敗したリクエストはすべて404ハンドラに渡されてからステータスコードが404
になることはありませんか?もし私が何かを見逃しているなら教えてください!ありがとうございます