Как настроить собственное промежуточное ПО в strapi? - PullRequest
1 голос
/ 11 июля 2020

Я просто хотел настроить простое пользовательское промежуточное ПО в strapi. Я пробовал то, что они пишут в документации, но обнаружил, что папка среды и внутренние конфигурации удалены. Follwing, что в настоящее время у меня есть Writtent.

/ 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();
      });
    },
  };
};

Пожалуйста, помогите мне реализовать промежуточное ПО в strapi api. Спасибо заранее.

Ответы [ 2 ]

0 голосов
/ 12 июля 2020

Я только что сделал то, что написано в документации, и я сделаю то же самое в своем ответе!

Первоначально я читал из более старой версии документации, которая упоминается @Derrick Мехаффи. Я нашел правильный URL-адрес документации и прочитал его реализацию промежуточного программного обеспечения. [ССЫЛКА НА ДОКУМЕНТЫ] (пояснения ниже взяты из документации)

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

Примеры : Создайте собственное промежуточное ПО . [Путь - . / 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');
      });
    },
  };
};

Включить промежуточное ПО в настройках среды.

Загрузить промежуточное ПО на самом первом месте -! Можно сделать в правильном порядке

Путь - ./config/middleware.js

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

В основном я просто скопировал и вставил ответ из документации, но он может быть полезен для будущего использования, потому что я оставил вопрос

0 голосов
/ 11 июля 2020

Пути к папкам, на которые вы ссылаетесь, относятся к старой бета-версии, которая не поддерживается. Вы просмотрели текущую стабильную документацию?

...