中间件浅析

本文介绍了Express中间件的概念,包括其作为请求处理方法的角色,构成中的中间件方法和请求处理函数,以及在路由保护、公告维护和自定义错误处理等实际场景中的应用。

什么Express是中间件?

中间件就是一堆方法,可以接收客户端发来的请求。可以对请求做出响应,也可以将请求继续交给下一个中间件继续处理。

!引入框架和创建实例app

const express = require(‘express’)
const app = express()

构成

中间件由两部分构成

  1. 中间件方法
  2. 请求处理函数

其中中间方法由框架提供,负责拦截请求,请求处理函数由开发人员提供,负责处理请求

/*
	以下中间件参数说明:
	
	[参数1]:请求路径
	[参数2]:处理函数
			@param req 用户请求对象,包括用户请求的信息
			@param res res 返回给用户的响应
			@param next 是否调用 next() 决定路由是否向下匹配
*/

// 接收get请求
app.get('',(req,res,nex)=>{
})

// 接收post请求
app.post('',(req,res,nex)=>{})

// 匹配所有的请求函数 - 可直接传入请求处理函数,代表接收所有的请求
// 注意: 若其之前还存在其它中间件,且在处理请求后未调用next()方法移交控制权。那么他也无法对请求进行处理
app.use('', (req,res,next)=> {
	
})

中间件的实际应用

  1. 路由保护,客户端在访问需要登陆身份的页面时,可以使用中间件判断用户的登陆状态。若未登录,则拦截请求。直接响应,禁止用户进入进入要身份登录的页面
  2. 网站公告的维护,在所有的路由上定义接收所有请求的中间件,直接为客户端做出响应。
  3. 自定义404页面

错误处理中间件

在程序执行的过程中,不可避免的会出现一些错误,比如:文件读取失败,数据库连接失败,而错误处理中间件就是集中处理错误的地方。


// 注意:其只能捕获同步代码错误,异步错误需要调用next(err)将错误对象传递出来
app.use((err,req,res,next)=> {
	// 当发生错误时,该中间件将被调用
})

// 异步代码,触发错误中间件实例。
// 当程序出现错误时,调用next()方法,并将错误的信息通过参数的形式传递给next()方法,即可触发错误中间件。
app.get("", (req, res, next)=> {
	fs.readFile('./file.txt', (err, data)=> {
		if(err) {
			next(err)
		}
	})
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值