Express 中间件

Express 中间件
(1)中间件的概念

1)什么是中间件

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

2)中间件的概念

中间件指的就是业务处理过程中的重甲处理过程,并且中间件必须有输入和输出,上一级的输出就是下一级中间件的输入。

3)Express中间件的调用流程

当一个请求到达Express 的服务器之后,可以连续调用多个中间件,从而对这次请求进行预处理。

4)Express中间件的格式
Express的中间件,本质上就是一个function处理函数,Express中间件的格式如下:

app.get('/', function(req, res, next){
    next()
})

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

5)next函数的作用

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

比如在中间件1处理完之后调用next函数,代表说我处理完毕了,我把结果交给中间件2处理。

(2)Express中间件的使用
1)定义中间件函数
可以通过如下方式,定义一个最简单的中间件函数:

// 常量mw所指向的,就是一个中间件函数
const mw = function (req, res,next){
    console.log( '这是一个最简单的中间件函数')
    // 注意:在当前中间件的业务处理完毕后,必须调用next()函数
    // 表示把流转关系转交给下一个中间件或路由
    next()
} 

定义一个最简单的中间件函数示例:

const express = require( 'express')
const app = express()

// 定义一个最简单的中间件函数
const mw = function(req, res, next){
    console.log("这是最简单的中间件函数")
    // 把流转关系,转交给下一个中间件或路由
    next()
}

// 启动web服务器
app.listen(80, () => {
    console.log('server running at http://127.0.0.1')
})

2)全局生效的中间件

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

通过调用app.use(中间件函数),即可定义一个全局生效的中间件,示例代码如下:

// 常量mw所指向的,就是一个中间件函数
const mw = function (req, res,next){
    console.log( '这是一个最简单的中间件函数')
    next()
}
// 将 mw 注册为全局生效的中间件
app.use(mw)

只要有一个请求到达了我们的服务器,必然会经过mw函数的处理,处理完之后就会调用next函数把结果交给之后的中间件或路由。

全局中间件示例:

const express = require( 'express')
const app = express()

// 定义一个最简单的中间件函数
const mw = function(req, res, next){
    console.log("这是最简单的中间件函数")
    // 把流转关系,转交给下一个中间件或路由
    next()
}

// 将 mw 注册为全局生效的中间件
app.use(mw)

app.get('/', (req,res)=> {
    res.send( 'Hello world.')
})
app.post('/', (req,res) => { 
    res.send( 'Post Request.')
})

// 启动web服务器
app.listen(80, () => {
    console.log('server running at http://127.0.0.1')
})
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值