express中间件

req是请求。 它承载着请求的http操作(get/post),路径(URL)和参数等

res是回复。 我们通过它决定什么时候返回,以及返回什么数据给发出请求的人或系统

middleware就是express的中间件

1. 对应一个URL路径,我们可以设置一到多个中间件

2. 请求依次通过每一个中间件,如果没有中途返回(红色那条虚线)的话

我们可以把中间件想象成流水线上负责不同生产步骤的工人,每一个工人都拿着上游传递过来的半成品(req)进行检查或处理。如果某一位置的工人处理时发现半成品有问题,可以中途打回,如果没问题,加工后在传递给下一层。能顺利通过所有的检查和处理的,就到达业务逻辑层,最后经由(res)返回成品。

req用法差异:

req.query

req.params.id

req.body

它们的作用都是从req里面获取用户请求的数据。

 

controller里面有两个比较特别的东西。

1. next:它是一个函数。调用方法next()其实就是会把控制权交到下一个middleware,把请求交给它处理

2. catch:它能捕获上面处理业务逻辑时候的错误。 把next放在这里,作用就是,当有错误发生的时候,express注册的错误处理中间件就会处理这个错误

 

定义路由

MVC中的路由,就是路径和controller的对应关系。

注意: 1. 路由的定义和配置,是按照http方法+url两者来标识的。

           2. 路由定义的顺序是有讲究的。在module.exports.routers里面,URL和controller的对应关系,是按顺序注册到express框架里面的。

posted @ 2018-09-03 15:04  指尖流年1218  阅读(91)  评论(0编辑  收藏  举报