1. 程式人生 > >egg.js 學習之 中介軟體使用

egg.js 學習之 中介軟體使用

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