iT邦幫忙

DAY 25
0

從無到有打造 RESTful API service系列 第 25

[API-day25] - 實戰開發 - 處理 404 & 500

  • 分享至 

  • xImage
  •  

小弟的規劃表 - http://blog.kerkerj.in/blog/2014/11/01/planning/

好讀版 - http://blog.kerkerj.in/blog/2014/10/25/api-day25/

Github 參考

不知道大家在用 POSTMAN 對前幾天寫的 API 丟 request 有沒有遇過類似下面的情況:

Cannot GET /user/kerkerj/todoss

通常是丟錯網址時會出現的,或是 code 沒寫好會出現 500 error

這些情況是有辦法接到的,今天我們希望能夠接到後,將 message 轉成 json 格式吐回給 client

因此程式碼如下

app.js

// catch 404 and forward to error handler
app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    res.status(404).jsonp({error: "Not Found"});
    next();
});

// catch 500
app.use(function(err, req, res, next) {
            res.status(err.status || 500).json({error: err.message});
});

基本上這兩段 code 的意思就是加入了兩個 middleware

如果進來的 request 是屬於 404 or 500 就會回傳 json 格式

並且依錯誤碼不同而回傳不同的訊息

試著將 server 跑起來

亂丟 request 看看

原本應該會是

Cannot GET /user/kerkerj/todoss

就會變成了 json

{
    "error": "Not Found"
}

這樣一來, client 程式也就能夠統一接收 json 回傳,而不會因為莫名的字串導致解析錯誤而 crash 了!


上一篇
[API-d24] - 實戰開發 - 刪除 TODO Task API With Mongoose
下一篇
[API-d26] - 實戰開發 - API-key
系列文
從無到有打造 RESTful API service30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言