在 typeorm.forroot 中使用 process.env 变量
Use process.env variable in typeorm.forroot
遵循本指南: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 {...}
我们在 forRoot
的调用中使用了 env 变量并且它有效。我假设您的模块文件(包含此代码的打字稿文件)已导入 (import
) before dotenv 完成工作。 dotenv
应该是您的应用 imported/done 的第一件事,除非您有充分的理由做其他事情。
遵循本指南: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 {...}
我们在 forRoot
的调用中使用了 env 变量并且它有效。我假设您的模块文件(包含此代码的打字稿文件)已导入 (import
) before dotenv 完成工作。 dotenv
应该是您的应用 imported/done 的第一件事,除非您有充分的理由做其他事情。