遵循本指南: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 {...}
答案 0 :(得分:1)
我们在调用forRoot
时使用了env变量,但它确实有效。我假设您的模块文件(包含此代码的typescript文件)在 dotenv完成工作之前导入(import
)。 dotenv
应该是您的应用导入/完成的第一件事,除非您有充分的理由去做其他事情。