我已经按照从如何创建一个基本的配置服务的docs的例子。
在本教程的底部,它说,你可以选择在全球范围内声明它:
“而不是进口的qazxsw反复POI在所有的模块,你也可以声明qazxsw POI作为一个全球性的模块。”
所以,以下为全球模块我的文档:
ConfigModule
从ConfigModule
到Global
。@nestjs/common
装饰到ConfigModule
。@Global()
到ConfigModule
。ConfigModule
到AppModule
阵列。下一个是什么?我曾尝试以注入ConfigModule
到imports
但是它不能解决。
app.module.ts:
ConfigService
app.service.ts:
AppService
config.module.ts:
import { Module } from '@nestjs/common';
import { AppService } from './app.service';
import { AppController } from './app.controller';
import { ConfigModule } from '../config/config.module';
@Module({
imports: [
ConfigModule,
],
controllers: [
AppController,
],
providers: [
AppService,
],
})
export class AppModule {}
config.service.ts:
import { Injectable } from '@nestjs/common';
@Injectable()
export class AppService {
private readonly config: ConfigService;
constructor(config: ConfigService) {
this.config = config;
}
getHello(): string {
return config.get('DB_NAME');
}
}
我希望能够注入import { Module, Global } from '@nestjs/common';
import { ConfigService } from './config.service';
@Global()
@Module({
providers: [
{
provide: ConfigService,
useValue: new ConfigService(`${process.env.NODE_ENV}.env`),
},
],
exports: [
ConfigService,
],
})
export class ConfigModule {}
从任何模块访问它。
你错过了你的import * as dotenv from 'dotenv';
import * as fs from 'fs';
export class ConfigService {
private readonly envConfig: { [key: string]: string };
constructor(filePath: string) {
this.envConfig = dotenv.parse(fs.readFileSync(filePath));
}
get(key: string): string {
return this.envConfig[key];
}
}
的ConfigService
预选赛:
this
此外,进口丢失:
AppService