如何在 strapi 中设置自定义中间件?

How to setup custom middleware in strapi?

我只是想在 strapi 中设置一个简单的自定义中间件。我已经尝试过他们在文档中写的内容,但我发现环境文件夹和内部配置已被删除。以下是我目前写的。

/config/environments/development/middleware.json

{
  "subscribers": {
    "enabled": true
  }
}

/config/middleware.json

{
  "timeout": 100,
  "load": {
    "before": ["responseTime", "logger", "cors", "responses", "gzip"],
    "order": ["parser", "subscribers"],
    "after": ["router"]
  }
}

/middlewares/subscribers/index.js

module.exports = (strapi) => {
  return {
    initialize() {
      strapi.app.use(async (ctx, next) => {
        console.log("I have been called!");
        await next();
      });
    },
  };
};

请帮我事先在strapiapi.Thanks中实现一个中间件。

我只是做了文档中写的,我会在我的回答中做同样的事情!

最初我正在阅读@Derrick Mehaffy 提到的旧版本文档。我找到了正确的文档 url 并通读了它的中间件实现。 [LINK TO THE DOCS](以下解释来自文档)

------------------------------------------------------------------------------------

Examples: Create your custom middleware. [Path — ./middlewares/timer/index.js]

module.exports = strapi => {
  return {
    initialize() {
      strapi.app.use(async (ctx, next) => {
        const start = Date.now();
        // I just add custom code that logs `I have been called!`
        console.log('I have been called!');
        await next();

        const delta = Math.ceil(Date.now() - start);

        ctx.set('X-Response-Time', delta + 'ms');
      });
    },
  };
};

Enable the middleware in environments settings.

Load a middleware at the very first place - !You can do at the proper order

Path — ./config/middleware.js

module.exports = {
  load: {
    before: ["timer", "responseTime", "logger", "cors", "responses", "gzip"],
    order: ["parser", ],
    after: ["router", ],
  },
  settings: {
    timer: {
      enabled: true,
    },
  },
};

基本上我只是从文档中复制并粘贴了答案,但它可能对以后的使用有所帮助,我已经留下了问题