javascript - 导入后如何使用全局模块?
问题描述
我已经按照文档中有关如何创建基本配置服务的示例进行操作。
在教程的底部,它说您可以选择全局声明它:
ConfigModule
“您也可以声明ConfigModule
为全局模块,而不是在所有模块中重复导入。”
因此,按照我拥有的全局模块的文档:
Global
从导入@nestjs/common
到ConfigModule
.@Global()
将装饰器添加到ConfigModule
.- 导入
ConfigModule
到AppModule
. - 添加
ConfigModule
到imports
数组中。
下一个是什么?我试图注入ConfigService
但AppService
它没有解决。
app.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 {}
app.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');
}
}
config.module.ts:
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 {}
config.service.ts:
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
:
getHello(): string {
return this.config.get('DB_NAME');
^^^^^
}
此外,缺少导入:
import { ConfigService } from './config/config.service';
推荐阅读
- java - 多模块项目构建期间模块之间的 Maven 依赖关系解析
- azure - org.apache.spark.sql.AnalysisException:尝试从 spark 访问 azure 时路径不存在
- c++ - 编写特定的 Clang 检查
- x86 - 如何使用 perf 正确测量 IPC(每周期指令)
- css - 使用 divi 的网站 - wordpress 在谷歌浏览器上工作,但没有 safari
- javascript - RxJS distinctUntilChanged 多次发出相同的值
- python - 当特征值重复时,MATLAB/numpy 会显示哪些特征向量
- linux - docker exec 期间出错
- elasticsearch - Elasticsearch:仅返回基于名称字段的 DISTINCT 命中
- python - 使用 python 在终端中运行命令行命令