egg-middleware 中间件

本文详细介绍了Egg.js框架中的中间件机制,包括中间件的编写方法、配置及在路由中的应用,展示了如何利用中间件进行请求处理。

 

Middleware 中间件

 Egg 的中间件形式和 Koa 的中间件形式是一样的,都是基于洋葱圈模型。每次我们编写一个中间件,就相当于在洋葱外面包了一层。

 

编写中间件


 

 

写法

我们先来通过编写一个简单的中间件,来看看中间件的写法。

 

// app/middleware/middlewareOne.js
module.exports = (options, app) => {
    return async function middlewareOne(ctx, next) {
        console.log("==request one==");

        console.log(ctx.url)

        if(ctx.url === '/'){
            await next();
        }

        console.log("==response one==");
    }
};

 

配置

// config/config.default.js
exports.middleware = ['middlewareOne']; // 数组的顺序为中间件执行的顺序

 

 

router 中使用中间件

以上方式配置的中间件是全局的,会处理每一次请求。 如果你只想针对单个路由生效,可以直接在 app/router.js 中实例化和挂载,如下:

'use strict';

/**
 * @param {Egg.Application} app - egg application
 */
module.exports = app => {
  const { router, controller } = app;
  const gzip = app.middleware.middlewareOne();
  router.get('/', gzip, controller.home.index);
  router.get('/zyu', controller.home.zyu);
  router.get('/test', controller.test.index);
};

 

转载于:https://www.cnblogs.com/zyulike/p/10118632.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值