热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Egg.js中间件详解与应用实例

Egg.js的中间件机制与Koa类似,均采用洋葱模型。每当开发一个中间件时,就像是在洋葱外增加了一层。本文将通过一个简单的中间件示例,详细介绍Egg.js中间件的编写方法及其应用场景,帮助读者更好地理解和使用这一功能。

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

 


推荐阅读
author-avatar
辛勤的核桃4dr_797
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有