KOA

4.3KOA 中间件模块化与中间件合成

2020-01-06  本文已影响0人  帶頭二哥

中间件模块化与中间件合成

一、中间件模块化

定义中间件模块
module.exports = aysnc (ctx,next) => {
    console.log("test")
    await next()
}
使用中间件模块
// 引入 koa 模块
const Koa = require('koa')
// 创建 koa 应用
const app = new Koa()

// 使用中间件
const TestMiddleware = require("TestMiddleware")
app.use(TestMiddleware)

app.use(async (ctx,next) => {
    ctx.body = "Hello World"
})

// 启动应用
app.listen(3000)

二、使用 koa-compose 模块合并中间件

1. 定义耗时日志中间件
module.exports = async (ctx,next) => {
    let d = Date.now()
    console.log("请求开始")
    await next()
    console.log(`请求耗时:${Date.now() - d} ms`)
}
2. 定义请求日志中间件
module.exports = async (ctx,next) =>  {
    console.log(`${ctx.method} 请求地址: ${ctx.url}`)
    await next()
}
3. 定义统一日志中间件
const compose = require('koa-compose')
const reqlogger = require('./reqlogger')
const timelogger = require('./timelogger')
module.exports = compose([reqlogger,timelogger])
4. 使用日志中间件
// 引入 koa 模块
const Koa = require('koa')
// 创建 koa 应用
const app = new Koa()

const logger = require('./middlewares/logger.js')
app.use(logger)

app.use(async (ctx,next) => {
    // 执行下一个中间件
    ctx.body = "Hello World"
})

// 启动应用
app.listen(3000)
上一篇下一篇

猜你喜欢

热点阅读