Node.js NestJS-如何/在何处使用异步方式配置FileInterceptor

Node.js NestJS-如何/在何处使用异步方式配置FileInterceptor,node.js,file-upload,interceptor,multer,nestjs,Node.js,File Upload,Interceptor,Multer,Nestjs,正如文档所说:我们可以为文件拦截器进行异步配置 我想用它来使用我的ConfigService上传目录(环境不同)。 但是我不知道在哪里写这个异步配置 文档为我们提供了一个设置配置的示例,但我不知道如何将其集成到我的项目中 我已经检查了官方文档,特别是技术/文件上传和概述/中间件。我已经测试了一些实现,但我的配置似乎从未使用过 我使用此方法配置Multer: MulterModule.registerAsync({ imports: [ConfigModule], useFactory:

正如文档所说:我们可以为文件拦截器进行异步配置

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

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

我已经检查了官方文档,特别是
技术/文件上传
概述/中间件
。我已经测试了一些实现,但我的配置似乎从未使用过

我使用此方法配置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]
})
您知道如何集成此配置吗


感谢您的帮助:)

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

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

您必须在
AppModule
中导入
MulterModule
,以设置默认配置:

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

这对我有用。你的控制器看起来像什么?当您使用
MulterModule.register
和静态值时,它能工作吗?嘿@KimKern!我没有测试这个方法(
MulterModule.register
)。我的上传仅适用于decorator
@UseInterceptors(FileInterceptor(…)
)。您将
MulterModule.registerAsync
放在哪里?请看我关于
registerAsync
放在哪里的答案。抱歉,耽搁了您的时间;我不得不暂停我的项目。你的解决方案很好,谢谢@kimkern这对我很有效。你的控制器看起来像什么?当您使用
MulterModule.register
和静态值时,它能工作吗?嘿@KimKern!我没有测试这个方法(
MulterModule.register
)。我的上传仅适用于decorator
@UseInterceptors(FileInterceptor(…)
)。您将
MulterModule.registerAsync
放在哪里?请看我关于
registerAsync
放在哪里的答案。抱歉,耽搁了您的时间;我不得不暂停我的项目。你的解决方案很好,谢谢@KimKernI有两个功能模块,我可以在其中处理上传的文件。如果在AppModule中导入MulterModule,则注册的存储服务不工作。显然,我需要在所有功能模块中导入MulterModule,但是在那里,依赖注入不起作用。我有两个功能模块,我可以处理上传的文件。如果在AppModule中导入MulterModule,则注册的存储服务不工作。显然,我需要在所有功能模块中导入MulterModule,但是在那里,依赖注入不起作用。所以我只能忍受这个。