当前位置: 首页 > news >正文

Node=>Express中间件 学习3

1.概念:

在这里插入图片描述

例:在处理污水的时候,一般都要经过三个处理环节,从而保证处理过后的废水,达到排放标准

处理污水的这三个中间处理环节,就可以叫中间件

2.中间件调用流程

当一个请求到达Express的服务器之后,可以连续调用多个中间件,从而对这次请求进行预处理
在这里插入图片描述

3.express的中间件,本质上就是一个function处理函数,express中间件的格式如下:

在这里插入图片描述

注:中间件函数的形参列表中,必须包含next参数,而路由处理函数中只包含req和res

4.next函数的作用

在这里插入图片描述

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

5.定义中间件函数

在这里插入图片描述

6.全局生效的中间件

客户端发起的任何请求,到达服务器之后,都会触发的中间件,叫做全局生效的中间件 调用app.use(中间件函数),即可定义一个全局生效的中间件

7.中间件的作用

多个中间件之间,共享同一份req和res,基于这样的特性,我们可以在上游的中间件,统一为req和res对象添加自定义的属性和方法,供下游的中间件或路由进行使用
在这里插入图片描述

8.定义多个全局中间件

连续使用app.use()定义全局中间件,执行顺序按照定义顺序

9.局部生效的中间件

不使用app.use()定义的中间件,叫做局部生效的中间件
在这里插入图片描述

10.中间件使用注意事项

  • 中间件要在路由之前注册
  • 客户端发送过来的请求,可以连续调用多个中间件进行处理
  • 执行完中间件的业务代码之后,不要忘记调用next()函数
  • 为了防止逻辑代码混乱,调用next()后不要再写额外的代码
  • 连续调用多个中间件时,多个中间件之间,共享req和res对象

相关文章:

  • 软件测试】测试时间不够了,我很慌?项目马上发布了......
  • m序列发生器——Verilog设计
  • 云原生系列之使用 prometheus监控MySQL实战
  • 源码级别的讲解JAVA 中的CAS
  • 《嵌入式 – GD32开发实战指南》第22章 SPI
  • FreeModbus RTU 移植指南
  • C库函数文件操作(fopen、fread、fwrite、fclose)
  • QT之OpenGL深度测试
  • 初阶指针C
  • 【C++】CC++内存管理
  • 每日学术速递2.9
  • python selenium浏览器复用技术
  • Chapter4:机器人仿真
  • 我的网站上线了!
  • MySQL篇02-三大范式,多表查询
  • [译]前端离线指南(上)
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • angular2开源库收集
  • CSS3 变换
  • extract-text-webpack-plugin用法
  • HashMap剖析之内部结构
  • JavaScript学习总结——原型
  • Java到底能干嘛?
  • NSTimer学习笔记
  • Redis 中的布隆过滤器
  • windows下使用nginx调试简介
  • 阿里云Kubernetes容器服务上体验Knative
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 回流、重绘及其优化
  • 基于webpack 的 vue 多页架构
  • 老板让我十分钟上手nx-admin
  • 排序算法之--选择排序
  • 如何实现 font-size 的响应式
  • 问题之ssh中Host key verification failed的解决
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • k8s使用glusterfs实现动态持久化存储
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #includecmath
  • $GOPATH/go.mod exists but should not goland
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (LeetCode) T14. Longest Common Prefix
  • (备忘)Java Map 遍历
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (顺序)容器的好伴侣 --- 容器适配器
  • (小白学Java)Java简介和基本配置
  • (已解决)什么是vue导航守卫
  • (转)Linq学习笔记