NestJS-如何/在何处以异步方式配置FileInterceptor

时间:2019-04-12 21:20:07

标签: node.js file-upload interceptor multer nestjs

正如文档所述:我们可以为文件拦截器提供异步配置。

我想用它来将我的ConfigService用于上传目录(因环境而异)。 但是我不知道在哪里写这个异步配置。

文档提供了一个示例来设置配置,但是我不知道如何将其集成到我的项目中。

我已经检查了官方文档,尤其是Techniques/File UploadOverview/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]
})

您是否知道如何集成此配置?

谢谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

您必须在MulterModule中导入AppModule才能设置默认配置:

@Module({
  imports: [
    MulterModule.registerAsync(...)
  ],
})
export class AppModule{}