node.js - 仅在 npm 包中创建一个 var,“global”,而不是在 Nodejs 中创建整个项目
问题描述
我正在转换我的节点微npm packages
服务,以便我可以在单个服务器中运行其中的几个。它们交换 RabbitMQ 消息,因此它们独立于侦听服务器。
我的问题是每个Ms都使用global.variables
了 ,例如 DB 连接。现在它们是包,所以我可以在一个服务器中有不同的Mss,我不能共享一个global.db_connection
,因为每个Ms可能使用不同的数据库。有没有办法让我可以global.db_connection
在 a中使用 a Package
,而 var 在该包中是全局的?
==== UPDATE1 之前,我错误地提到了模块。我的意思是npm package
。每个 MS 都是一个单独的 npm 包,我安装在服务器中。我现在已经纠正了我的问题,使用包而不是模块。
=== 示例
我知道有更好的方法在代码之间使用数据库连接。我正在使用“db_connection”作为全局对象的示例。
-- 包A.js
@module MS_A
global.db_connection = db.connect(URL_1);
class MS_A
{
...
}
module.exports = MS_A;
-- 包B.js
@module MS_B
global.db_connection = db.connect(URL_2);
class MS_B
{
...
}
module.exports = MS_B;
-- 服务器.js
global.needed_variable = 3;
var MS_A = new require("./packageA.js")().start();
var MS_B = new require("./packageB.js")().start();
/**
"needed_variable" should be visible inside both packages.
"db_connection" should be not visible outside each package
*/
MS_B 应该使用它自己的db_connection
,并且不知道db_connection
MS_A 的(反之亦然)。
解决方案
推荐阅读
- javascript - 在分配变量后的Vue中,它仍然指向旧变量
- python - 列表的 Python 格式(单行)
- google-apps-script - 谷歌脚本格式日期创建不可能的日期
- javascript - 如何创建具有 2 个键和 1 个值的对象?
- python - 是否有相当于 `pip install -t` 的`conda`
- ffmpeg - ffmpeg drawtext 支持藏文字体
- sql - SQL 在搜索下方查找结果 1 字段
- shell - 如何拆分路径以获取shell脚本中的目录
- javascript - 如何使用脚本仅隐藏一半图像?
- java - Java 多线程应用程序 - 在 Hive 上间歇性地获取“错误文件描述符”异常