美文网首页KOA
4.3KOA 中间件模块化与中间件合成

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

作者: 帶頭二哥 | 来源:发表于2020-01-06 01:27 被阅读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)
    

    相关文章

      网友评论

        本文标题:4.3KOA 中间件模块化与中间件合成

        本文链接:https://www.haomeiwen.com/subject/byrhactx.html