我可以使用 @nestjs/cofnig 从 appModule 中的数据库获取配置吗?
Can I get config fro database in appModule with @nestjs/cofnig?
我想使用@nestjs 来管理配置文件。
现在我已经使用了以下方式连接mysql和redis。
// app.module.ts
import { Module } from '@nestjs/common'
import { SequelizeModule } from '@nestjs/sequelize'
import { RedisModule } from 'nestjs-redis'
import { ConfigModule } from '@nestjs/config'
import { ExampleModule } from './example/example.module'
import { UserModule } from './user/user.module'
import config from './config' // I want to use @nestjs/config instead it
@Module({
imports: [
SequelizeModule.forRoot(config.DATABASE),
RedisModule.register(config.REDIS),
UserModule,
ExampleModule,
ConfigModule.forRoot()
],
})
export class AppModule {}
我可以通过@nestjs / config在appmodule中获取他们的配置信息吗
您需要使用异步注册方法forRootAsync
和registerAsync
。最简单的方法是进行如下设置:
@Module({
imports: [
SequelizeModule.forRootAsync({
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
url: config.get('DATABASE'),
}),
}),
RedisModule.registerAsync({
inject: [ConfigService],
useFacotry: (config: ConfigService) => ({
url: config.get('REDIS')
})
}),
UserModule,
ExampleModule,
ConfigModule.forRoot({
isGlobal: true
})
],
})
export class AppModule {}
某些选项和输入可能已关闭,但这应该会引导您朝着正确的方向前进。
我想使用@nestjs 来管理配置文件。
现在我已经使用了以下方式连接mysql和redis。
// app.module.ts
import { Module } from '@nestjs/common'
import { SequelizeModule } from '@nestjs/sequelize'
import { RedisModule } from 'nestjs-redis'
import { ConfigModule } from '@nestjs/config'
import { ExampleModule } from './example/example.module'
import { UserModule } from './user/user.module'
import config from './config' // I want to use @nestjs/config instead it
@Module({
imports: [
SequelizeModule.forRoot(config.DATABASE),
RedisModule.register(config.REDIS),
UserModule,
ExampleModule,
ConfigModule.forRoot()
],
})
export class AppModule {}
我可以通过@nestjs / config在appmodule中获取他们的配置信息吗
您需要使用异步注册方法forRootAsync
和registerAsync
。最简单的方法是进行如下设置:
@Module({
imports: [
SequelizeModule.forRootAsync({
inject: [ConfigService],
useFactory: (config: ConfigService) => ({
url: config.get('DATABASE'),
}),
}),
RedisModule.registerAsync({
inject: [ConfigService],
useFacotry: (config: ConfigService) => ({
url: config.get('REDIS')
})
}),
UserModule,
ExampleModule,
ConfigModule.forRoot({
isGlobal: true
})
],
})
export class AppModule {}
某些选项和输入可能已关闭,但这应该会引导您朝着正确的方向前进。