我将@UseInterceptors与@ nestjs / platform-express中的FilesInterceptor一起使用。 FilesInterceptor允许我传递一些配置(例如文件存储文件夹)。我想不传递确切的值(例如'public'),而是从configService中获取它们。
从这个答案(https://stackoverflow.com/a/59828094/13128344)我知道为什么从UseInterceptors调用this.configService导致未定义。
@UseInterceptors(FilesInterceptor('cat_pic', 2, this.configService.get('storageConfigs')))
那么如何将配置传递给FilesInterceptor?或者,如果我将文件拦截器功能移至单独的模块,该如何访问服务?
答案 0 :(得分:1)
您有一个选择,就是从config()
包中调用dotenv
,将所有内容加载到process.env
中的main.ts
中。您仍然可以在其他任何地方使用ConfigModule
和ConfigService
,但是在装饰器中,您将使用该process.env.storageConfigs
变量。
另一种选择是像@golevelup/profiguration这样的软件包,它是一种配置服务,由于其编写方式,可以在装饰器中使用。