研究狀態碼規則圍繞個人腦殼有些時間了。html
加上最近比較不忙,開始了這方面的研究。前端
後端用的是直接跑過的node框架,express。能夠直接參考express官方網站:http://www.expressjs.com.cn/starter/generator.html,搞定express跑起來的問題。node
固然還有幾本的express的目錄結構。ios
app.js內部部分代碼。express
var indexRouter = require('./routes/index'); var usersRouter = require('./routes/users');
express是從app.js開始的而後,分發請求,前端的請求:axios的請求和來自url的直接請求。axios
爲了便於研究也爲了進一步熟悉express,將express的默認試圖引擎從pug替換爲ejs。這個比較簡單,百度有不少官方文檔。後端
請求以後分發。舉個後端的例子:若是我用axios請求的是/users,在路由子文件回調函數中能夠手動指定返回狀態碼以及返回內容:promise
router.get('/', function(req, res, next) { res.status(200).send('測試'); });
實際上,後端是能夠手動指定返回狀態碼的,固然返回內容也必須是能夠的。app
都知道在前端axios分爲兩種狀態也就是promise的resolve和reject。前者走then,後者走catch,測試發現後端手動返回的狀態碼:1xx,2xx走then,而框架
其餘3xx、4xx和5xx走的是catch。而錯誤信息則經過catch的默認參數,姑且叫err拿到,就掛在err.response上面。
最後要說明的是若是前端輸入的是一個錯誤連接或者後端報錯,分別返回的是404和500,後端也是能夠手動指定返回內容的。由於暫時對express還不是很熟悉,因此這個沒有嘗試出來,可是框架默認返回的是一個叫作error的模板的返回數據。