如何自訂 Node.js/Express 狀態訊息?

當 Node.js 處理請求時,使用 sendStatus 回傳狀態碼,
當發生錯誤時,只要指定狀態碼,就會顯示標準錯誤訊息內容,
例如:
router.put('/user/:id', function (req, res, next) {
    res.sendStatus(404);
});
客戶端會收到如下錯誤訊息:
HTTP/1.1 404 Not Found
如果只顯示預設資訊,
對於排除問題非常不方便....
當想反映實際錯誤發生原因,或是提示如何排除問題,
可以這樣寫:
router.put('/user/:id', function (req, res, next) {
   res.statusMessage = "User Not Exist, Please Create User First.";
   res.send(404);
   res.end();
});

客戶端就會收到以下錯誤訊息:
HTTP/1.1 404 User Not Exist, Please Create User First.
這樣就可以提供詳細資訊給前端,做進一步處理囉!

留言