我期待通過快遞發生器產生app.js
,並有下面的代碼:爲什麼下面的處理程序確定爲404處理器
app.use('/', index);
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);
});
我的問題是,爲什麼在過去的中間件功能被確定爲函數當not found
錯誤應該返回時執行?
是否基於這樣的假設:如果調用此函數,則意味着沒有其他中間件/路由器函數完成處理與res.send()
的請求,因此對請求不感興趣,因此可能沒有處理請求的處理程序?如果是這樣,那麼應該總是最後添加這個處理函數,正確嗎?
是的,沒錯。這是因爲它是最後一個,即*沒有更多有效的路由,因此這必須是一個錯誤。* –
是的,它完全如您所述 –