node -koa 自定义中间件

koa中编写中间件,很简单:

下边,我是写了一个异常捕获中间件,在app.js中使用app.use()注册即可:

// errMiddleWare .js
const errMiddleWare = async (ctx, next) => {
    try {
        await next() // 加上了await ,相当于等所有的中间件都执行完毕后,这个next才会执行
    }catch(err) {
        ctx.body = '服务器异常,请稍后!!!'
    }
}
module.exports = {
    errMiddleWare
}
//app.js
const App = require('koa') // koa 框架
const { errMiddleWare } = require('./errMiddleWare/errMiddleWare.js')
const app = new App()
app.use(errMiddleWare) // 注册自定义异常捕获中间件
app.litsen(3000)

tips:

1、异常捕获中间件,如果你想让异常捕获中间件 捕获 全局所有的异常错误,需要放到所有中间件的前边,原因也很简单,加上await next( ),永远会等到下一个中间件执行完毕之后,它才会返回结果,所以全局的异常捕获中间件 只有放在最前边,才会捕获到代码执行过程中的任何错误:

app.use(async (ctx, next) => {
    const res = await next()
    console.log('1', res)
})

app.use(async (ctx, next) => {
    const res = await next()
    console.log('2', res)
})

 输出结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值