1

遵循本指南:https ://docs.nestjs.com/techniques/sql

当我尝试在连接选项中使用 process.env.DB_PASS 时,没有密码传递到 mysql。当我传递一个原始字符串时,它可以工作。Dotenv 配置是在创建嵌套应用程序模块之前完成的。

正确执行此操作的最佳方法是什么?

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost',
      username: 'root',
      password: process.env.DB_PASS,
      database: 'dbname',
      entities: ['./models/*.entity{.ts,.js}'],
      synchronize: true
    })
  ],
  controllers: [],
  components: []
})
export class AppModule implements NestModule {...}
4

1 回答 1

1

我们在调用中使用了环境变量forRoot并且它有效。我假设您的模块文件(包含此代码的打字稿文件)在dotenv 完成工作 之前import被导入( ) 。应该是您的应用程序导入/完成的第一件事,除非您有充分的理由去做其他事情。dotenv

于 2018-04-30T00:21:38.507 回答