gpt4 book ai didi

javascript - 有没有办法在 App.Module.ts 中使用 configService?

转载 作者:行者123 更新时间:2023-11-30 11:08:55 24 4
gpt4 key购买 nike

我正在使用 NestJs 构建 RESTful 服务,我遵循了 example为不同的环境构建配置。它适用于大多数代码。但是我想知道我是否可以在我的 app.module.ts 中使用它?

@Module({
imports: [
TypeOrmModule.forRoot({
type: 'mongodb',
host: `${config.get('mongo_url') || 'localhost'}`,
port: 27017,
username: 'a',
password: 'b',
database: 'my_db',
entities: [__dirname + '/MyApp/*.Entity{.ts,.js}'],
synchronize: true}),
MyModule,
ConfigModule,
],
controllers: [],
providers: [MyService],
})
export class AppModule { }

如您所见,我确实想将 MongoDb Url 信息移到代码之外,并且我正在考虑利用 .env 文件。但经过一些尝试,似乎并没有奏效。

当然我可以使用${process.env.MONGODB_URL || 'localhost'} 代替,并设置环境变量。我仍然很好奇我是否能让 configService 工作。

最佳答案

你必须使用 dynamic import (参见异步配置)。有了它,您可以注入(inject)依赖项并将它们用于初始化:

TypeOrmModule.forRootAsync({
imports: [ConfigModule],
useFactory: (configService: ConfigService) => ({
type: 'mongodb',
host: configService.databaseHost,
port: configService.databasePort,
username: configService.databaseUsername,
password: configService.databasePassword,
database: configService.databaseName,
entities: [__dirname + '/**/*.entity{.ts,.js}'],
synchronize: true,
}),
inject: [ConfigService],
}),

关于javascript - 有没有办法在 App.Module.ts 中使用 configService?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54535867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com