关于express的jiandanjieshao

134 阅读3分钟

express

express是基于Node.js平台,快速·开放·极简的web开发框架

web网站服务器 API接口服务器

通过res.send()方法,可以把处理好的内容,发送给客户端

通过req.query对象,可以访问到客户端通过查询字符串的形式,发送到服务器的参数

通过req.params对象,可以访问到URL中,通过:匹配到的动态参数

通过express.static()函数,可以非常方便地创建一个静态资源服务器,托管多个静态资源目录

路由

路由指的是客户端的请求与服务器处理函数之间的映射关系,路由分为三部分,分别是请求类型,请求的URL地址,处理函数

中间件

特指业务流程的中间处理环节

express中间件的本质是function处理函数

next函数是实现多个中间件连续调用的关键,把流转关系转交给下一个中间件或路由

全局生效的中间件

客户端发起的任何请求,到达服务器之后,都会触发的中间件叫全局生效的中间件

通过调用app.use(中间件函数),即可定义一个全局生效的中间件

中间件的作用:多个中间件之间,共享一份req和res,再上游的中间件

局部生效的中间件

不使用app.use()定义的中间件,叫局部生效的中间件

定义多个局部中间件

五个使用注意事项

一定要在路由之前注册中间件

客户端发送过来的请求,可以连续调用多个中间件进行处理

执行完中间件业务代码之后,必须调用next()函数

防止代码逻辑混乱,调用next函数不要再写额外代码

连续调用多个中间件时,多个中间件之间,共享req和res对象

中间件的分类

应用级别的中间件

绑定到app实例上的中间件

路由级别的中间件

绑定到express.Router()实例上的中间件

错误级别的中间件

专门用来捕获整个项目中发生的异常错误,从而防止项目异常崩溃的问题

Express内置的中间件

express.static快速托管静态资源的内置中间件

express.json解析JSON格式的请求体数据

express.urlencoded解析URL-encoded格式的请求体数据

没有配置解析表单数据的中间件,则req.body默认等于undefined

第三方中间件

非express官方内置的,而是由第三方开发出来的中间件,叫做第三方中间件

自定义中间件

自己动手模拟中间件来解析post提交到服务器的表单数据

req的data事件是来获取客户端发送到服务器的数据,数据量比较大,客户端把数据切割后,分批发送到服务器,data事件会出发多次,需要手动对接收到的数据进行拼接

req的end事件是当请求体数据接收完毕之后触发,则在该事件中,能拿到并处理完整的请求体数据

querystring模块,专门用来处理查询字符串,通过这个模块提供的parse()函数,可以把查询字符串解析成对象格式

接口的跨域问题

解决方案:cors

请求:客户端与服务器之间只会发生一次请求

预检请求:客户端与服务器之间会发生两次请求,OPTION预检请求成功之后,才会发起真正的请求