我只是想在 Strapi 中设置一个简单的自定义中间件。我已经尝试过他们在文档中编写的内容,但我发现环境文件夹和内部配置已被删除。以下是我目前所写的。
/config/environments/development/middleware.json
{
"subscribers": {
"enabled": true
}
}
Run Code Online (Sandbox Code Playgroud)
/config/middleware.json
{
"timeout": 100,
"load": {
"before": ["responseTime", "logger", "cors", "responses", "gzip"],
"order": ["parser", "subscribers"],
"after": ["router"]
}
}
Run Code Online (Sandbox Code Playgroud)
/中间件/订阅者/index.js
module.exports = (strapi) => {
return {
initialize() {
strapi.app.use(async (ctx, next) => {
console.log("I have been called!");
await next();
});
},
};
};
Run Code Online (Sandbox Code Playgroud)
请帮我在trapi api中实现一个中间件。事先谢谢。
我只是做了文档中写的内容,我会在我的回答中做同样的事情!
最初,我正在阅读@Derrick Mehaffy 提到的旧版本文档。我找到了正确的文档 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');
});
},
};
};
Run Code Online (Sandbox Code Playgroud)
在环境设置中启用中间件。
首先加载中间件 - !您可以按正确的顺序进行
路径——./config/middleware.js
module.exports = {
load: {
before: ["timer", "responseTime", "logger", "cors", "responses", "gzip"],
order: ["parser", ],
after: ["router", ],
},
settings: {
timer: {
enabled: true,
},
},
};
Run Code Online (Sandbox Code Playgroud)
基本上我只是从文档中复制并粘贴了答案,但它可能对将来的使用有所帮助,因为我留下了这个问题
| 归档时间: |
|
| 查看次数: |
2743 次 |
| 最近记录: |