express路由就是客户端请求后,服务端处理函数的映射关系
如创建了app=express()
挂在路由 app.METHOD("url",function) method可以使get,也可以是post请求
模块化路由,目的是当挂载路由很多的情况下,可以模块化,不出现冗余
创建一个新的文件,引入express,然后创建一个路有对象router=express.Router()
然后用router.get 或者router.post去挂载路由,最后用moudle exports router 暴露出去
主文件就用requires的方式引入,然后用app.use(router)注册
中间件,是对客户端的请求进行预处理的,它是将客户端的请求接收后首先经过的门卫。
参数和路由一样也有url和function,但多了一个next参数,目的是为了使用next()将处理完毕给下一个中间件或路由,比如在实际开发中,后续的路由想要获取req上的一些方法,因为所有路由的req和res是同一个,因此可以在中间件这里设置好req.method方法,然后后续路由就可以直接使用req.method调用方法。
注意,全局中间件生效的话必须使用app.use()注册设置好的中间件,而局部路由不用,只需要在要使用的路由的处理函数之前加入就行了,局部路由就只会在这个路由执行前进行预处理。
五种中间件
1.应用级别中间件,就是常用绑定在app.get/post的
2.路由级别中间件,是绑定在在router.get/post的中间件,最后还是要使用app.use(router)去注册
3.错误中间件,多了一个参数err放在一个参数上。注意:错误中间件是唯一一个放在路由之后的中间件,因为它要在路由报出错误之后才能运行的,如果放在前面不知道后续的路由是否会出错。
4.express内置的中间件 express.static express.json express.urlencoded 第一个static是将文件作为静态资源。json是可以将post的json数据解析,urlencoded是解析URL-encoded的表单数据。配置是使用app.use(express.json),
5.第三方中间件,安装npm i .. 然后require引入,最后app.use()注册就可使用第三方中间件