我有一个像我这样使用的koa中间件:
.use(signS3())
我现在要做的是使用来自signS3()的配置对象中来自koa的ctx
对象。我想做这样的事情:
.use((ctx, next) => signS3({ keyPrefix: ctx.host })(ctx, next))
但这不起作用。我在想我的语法有误,不胜感激任何有关如何做到这一点的意见。
答案 0 :(得分:1)
您正在使用为koa@1
编写的中间件,它使用生成器而不是async/await
。运行应用程序时应该注意到这个警告:
koa弃用对发电机的支持将在v3中删除。有关如何转换旧中间件https://github.com/koajs/koa/blob/master/docs/migration.md
的示例,请参阅文档
要在koa@2
中使用此中间件,您需要手动或使用koa-convert进行转换。例如:
const convert = require('koa-convert');
app.use(
(ctx, next) => convert(
signS3({
bucket: 'MyBucket',
keyPrefix: ctx.host,
})
)(ctx, next)
);
的官方文档