express中间件

概述

中间件函数可以在请求响应周期中使用req(request object)、res(response object)和next函数。next函数是一个在express router中的函数,当它调用的时候就会执行当前中间件的下一个中间件。
中间件函数可以执行以下任务

  • 任意的代码
  • 改变request和response对象
  • 结束请求响应周期
  • 调用任务中的下一个中间件

如果当前的中间件函数没有结束请求响应周期,它必须调用next()将控制权交给下一个中间件函数,否则这个请求将会被挂起。

使用

中间件的加载顺序很重要,加载在前,运行在前
如果提前结束了请求响应周期,那么后面的中间件将不会被执行
note:next(‘route’)只能在app.METHOD()和router.METHOD()中使用

application-level 中间件

绑定一个应用级的中间件使用app.use()和app.METHOD()方法

router-level 中间件

绑定一个路由级的中间件和应用级中间件很相似,只是需要绑定到express.Router()的实例。

var router = express.Router()
router.use()

可以在路由级的中间件中调用next(‘router’)跳过剩下的路由处理

var app = express()
var router = express.Router()
// predicate the router with a check and bail out when needed
router.use(function (req, res, next) {
  if (!req.headers['x-auth']) return next('router')
  next()
})
router.get('/', function (req, res) {
res.send('hello, user!')
})
// use the router and 401 anything falling through
app.use('/admin', router, function (req, res) {
  res.sendStatus(401)
})

错误处理中间件

错误处理中间件总是有4个参数,必须有4个,声明了不用也要有4个。

内置的中间件

express.static 静态资源服务
express.json
express.urlencode

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值