用node研究axios先後端交互狀態碼規則

       研究狀態碼規則圍繞個人腦殼有些時間了。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的模板的返回數據。

相關文章
相關標籤/搜索