如何在 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,
},
},
};
基本上我只是从文档中复制并粘贴了答案,但它可能对以后的使用有所帮助,我已经留下了问题
我只是想在 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,
},
},
};
基本上我只是从文档中复制并粘贴了答案,但它可能对以后的使用有所帮助,我已经留下了问题