如何将配置从配置服务传递给Nest.js装饰器?

时间:2020-08-12 11:59:59

标签: node.js nestjs

我将@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?或者,如果我将文件拦截器功能移至单独的模块,该如何访问服务?

1 个答案:

答案 0 :(得分:1)

您有一个选择,就是从config()包中调用dotenv,将所有内容加载到process.env中的main.ts中。您仍然可以在其他任何地方使用ConfigModuleConfigService,但是在装饰器中,您将使用该process.env.storageConfigs变量。

另一种选择是像@golevelup/profiguration这样的软件包,它是一种配置服务,由于其编写方式,可以在装饰器中使用。