yan*_*liu 7 global inversion-of-control node.js typescript nestjs
以配置为例,Nest.js 文档提倡注册 Config Module,并以依赖注入的方式将其注入到其他模块中。
好处很明显,依赖和代码也清晰,但是如果我有一个nest.js项目需要在启动时调用配置信息怎么办?这实际上给我带来了麻烦。
我的想法是使用一个store(实际上是一个闭包)来管理全局可能需要的所有变量,客户端链接对象,在启动时注册,并在需要时引入。
当相应的变量以这种方式注册后,就可以在任何地方引入它们。缺点是您需要自己管理依赖关系。
以上demo概念设计: https: //github.com/sophons-space/nest-server。
请大家帮我指正,我还是个菜鸟。
如果你想使用 Nest flow 它应该在configuration文件中定义
// 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,
};
};
Run Code Online (Sandbox Code Playgroud)
小智 7
创建一个文件 global.service.ts (在文件夹中,您可以将其命名为 utils 或其他名称)并将代码放在下面
export class GlobalService{
static globalVar: any;
}
Run Code Online (Sandbox Code Playgroud)
将值设置为 globalVar
GlobalService.globalVar = 'some value';
Run Code Online (Sandbox Code Playgroud)
从 globalVar 获取值
console.log(GlobalService.globalVar);
Run Code Online (Sandbox Code Playgroud)
注意:无论您想使用什么地方,都不要忘记导入 GlobalService。
您可以使用通用的 NodeJS 方法
global.SomeGlobalVariableName = 'SomeGlobalVariableValue';
console.log(SomeGlobalVariableName);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31709 次 |
| 最近记录: |