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,但是在那里,依赖注入不起作用。所以我只能忍受这个。