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)
})

 输出结果:

node -koa 自定义中间件_异常捕获