javascript NestJS ConfigModule.forRoot加载未按预期运行

vngu2lb8  于 2023-01-24  发布在  Java
关注(0)|答案(1)|浏览(183)

我正在尝试让加载env变量功能在NestJS的ConfigModule中工作。

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { ConfigModule } from '@nestjs/config';

@Module({
  imports: [
    ConfigModule.forRoot({
      load: [
        () => ({
          port: 3000,
          database: {
            host: process.env.DATABASE_HOST,
            port: parseInt(process.env.DATABASE_PORT, 10) || 5432,
          },
        }),
      ],
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

当我检查process.env.port时,它是未定义的。我有一种感觉,我不明白它实际上在做什么。我以为它会添加env变量port和数据库。我认为它可能与我不知道如何访问的可扩展env变量有关。有人能解释一下如何使它工作以及如何访问这些变量吗?上面的代码摘自位于https://docs.nestjs.com/techniques/configuration的NestJS文档
谢谢

ljsrvy3e

ljsrvy3e1#

好的,像往常一样,我在发布问题15分钟后回答了自己的问题。我假设这个修改后的process.env是不正确的。看起来它将这些值存储在ConfigModule内部,并且可以通过ConfigService访问它们。

this.configService.get<number>('port') // returns 3000

process.env.port // returns undefined

如果对别人有帮助,我会把这个留在这里。你知道他们怎么说假设。
谢谢

相关问题