【发布时间】:2019-04-13 21:00:46
【问题描述】:
正如文档所说:我们可以为文件拦截器进行异步配置。
我想用它来使用我的ConfigService 作为上传目录(谁因环境而异)。
但是我不知道在哪里写这个异步配置。
文档为我们提供了一个设置配置的示例,但我不知道如何将其集成到我的项目中。
我查看了官方文档,尤其是Techniques/File Upload 和Overview/Middleware。我已经测试了一些实现,但我的配置似乎从未使用过。
我用这个方法来配置Multer:
MulterModule.registerAsync({
imports: [ConfigModule],
useFactory: async (configService: ConfigService) => ({
storage: diskStorage({
destination: configService.downloadFolder,
filename: (req, file, cb) => {
const randomName = Array(32)
.fill(null)
.map(() => Math.round(Math.random() * 16).toString(16))
.join('')
return cb(null, `${randomName}${extname(file.originalname)}`)
}
})
}),
inject: [ConfigService]
})
您知道如何集成此配置吗?
感谢您的帮助:)
【问题讨论】:
-
这对我有用。你的控制器是什么样的?当您将
MulterModule.register与静态值一起使用时,它是否有效? -
嘿@KimKern!我没有测试这个方法(
MulterModule.register)。我的上传仅适用于装饰器@UseInterceptors(FileInterceptor(...))。你把MulterModule.registerAsync放在哪里? -
看看我的回答,把
registerAsync放在哪里。 -
抱歉耽搁了;我不得不暂停我的项目。您的解决方案很好,谢谢@KimKern
标签: node.js file-upload interceptor multer nestjs