用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的模板的返回数据。

相关文章
相关标签/搜索