Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在nest.js中使用全局变量?_Node.js_Typescript_Inversion Of Control_Nestjs_Global - Fatal编程技术网

Node.js 如何在nest.js中使用全局变量?

Node.js 如何在nest.js中使用全局变量?,node.js,typescript,inversion-of-control,nestjs,global,Node.js,Typescript,Inversion Of Control,Nestjs,Global,以配置为例,Nest.js文档提倡注册配置模块,并以依赖注入的方式将其注入其他模块 好处是显而易见的,依赖关系和代码也很清楚,但是如果我有一个nest.js项目需要在启动时调用配置信息呢?这实际上给我带来了麻烦 我的想法是使用一个存储(实际上是一个闭包)来管理全局可能需要的所有变量,客户端链接对象,在启动时注册,并在需要时引入 当以这种方式注册相应的变量时,可以在任何地方引入它们。缺点是您需要自己管理依赖关系 与上述概念设计的演示: 请帮我纠正一下,我还是个新手。你可以使用一般的NodeJS方法

以配置为例,Nest.js文档提倡注册配置模块,并以依赖注入的方式将其注入其他模块

好处是显而易见的,依赖关系和代码也很清楚,但是如果我有一个nest.js项目需要在启动时调用配置信息呢?这实际上给我带来了麻烦

我的想法是使用一个存储(实际上是一个闭包)来管理全局可能需要的所有变量,客户端链接对象,在启动时注册,并在需要时引入

当以这种方式注册相应的变量时,可以在任何地方引入它们。缺点是您需要自己管理依赖关系

与上述概念设计的演示:


请帮我纠正一下,我还是个新手。

你可以使用一般的NodeJS方法

global.SomeGlobalVariableName = 'SomeGlobalVariableValue';

console.log(SomeGlobalVariableName);

如果要使用嵌套流,则应在
配置
文件中定义它

// app.module.ts
import configuration from './config/configuration';

imports: [
// first import as first initialization
  ConfigModule.forRoot({
    isGlobal: true, // to get access to it in every component
    load: [configuration],
  }),
]
...
// configuration.ts
export default (): any => {
  return {
    someGlobalConfigVariable: parseInt(process.env.PORT, 10) || 3000,
  };
};


实现这一点的方法类似于NestJS库或集成通常处理配置的方式;在基本模块上使用方法

main.ts

从'@nestjs/core'导入{NestFactory};
从“./app.module”导入{AppModule};
异步函数引导(){
//注意“configure”方法
const app=等待NestFactory.create(AppModule.configure({
myConfig:'值',
});
等待应用程序。聆听(3000);
}
bootstrap();
app.module.ts

从'@nestjs/common'导入{DynamicModule};
导出类AppModule{
静态配置(配置):动态模块{
返回{
模块:AppModule,
提供程序:[{provide:'CONFIG',useValue:CONFIG}],
// ....
}
}
}

我不太确定这里的问题是什么。NestJS是NodeJS之上的一个框架,所以(大部分)节点中的任何有效操作都可以在Nest中完成。您的方法是否出现错误?我得到的错误是,
Nest无法解析EntryController(EntryService)的依赖项。请确保索引[1]处的参数配置在EntryModule上下文中可用。
,我遗漏了什么?虽然使用此答案有效,但我不想创建新模块