前面將初步 Product API 打造好了,那很自然想到的是那當出現自己設定 Router 以外的 URL,該怎麼辦?
這時候就要用到之前用過的中間件了,但為什麼是用中間件呢?
在每次請求發過來時,
在 express 套件中,本身就是一系列中間件函數呼叫而成的。
依照上面的理解,以下的中間件就是在說,當 Request 來時,如果都沒有匹配到 Router 也沒有做,Response 的話,那我就產生錯誤,交給最後的 function Response 錯誤結果。
app.use((req, res, next) => {
const error = new Error('Not Found');
error.status = 404;
next(error);
});
app.use((error, req, res, next) => {
res
.status(error.status || 500)
.json({
error: {
message: error.message,
}
});
});