码迷,mamicode.com
首页 > Web开发 > 详细

egg.js 学习之 中间件使用

时间:2018-12-28 23:40:25      阅读:1070      评论:0      收藏:0      [点我收藏+]

标签:.data   options   script   挂载   ict   sync   out   syn   中间件   

1.在框架和插件中使用中间件

编写中间件

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

// app/middleware/middlewareOne.js

// app/middleware/middlewareOne.js
module.exports = (options, app) => {
  return async function middlewarreone(ctx, next) {
    const url = ctx.request.url;
    await next();
    ctx.body = `获取到的ip是:${url}`;
  }
};

  

配置

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

请求会执行 : 获取到的ip是:/data

router 中使用中间件

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

‘use strict‘;

/**
 * @param {Egg.Application} app - egg application
 */
module.exports = app => {
  const {
    router,
    controller
  } = app;
  const isUrl = app.middleware.middlewarreone({params: ‘888‘,});
  router.get(‘/‘, controller.home.index);
  router.post(‘/login‘, controller.home.login);
  router.post(‘/data‘,isUrl, controller.data.index);
  router.post(‘/upload‘, controller.upload.upload);

  router.get(‘/search‘, controller.data.search);
};

  发送请求 同样会执行 结果:/data




egg.js 学习之 中间件使用

标签:.data   options   script   挂载   ict   sync   out   syn   中间件   

原文地址:https://www.cnblogs.com/qq735675958/p/10193313.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!