我的nodejs项目需要不同的.js模块可访问的内存表。有些模块会更新表,但所有模块的数据必须相同(内存数据库中的数据类型)。因此,我需要一个真正的全局对象....而不是全局的每个模块对象。在所有模块中创建包含所有对象的 common.js 文件,然后需要它将无法执行,因为数据将是相应模块的全局/本地。我已经看到 nodejs globals 的引用,其中 global.myobject 对所有模块都是全局的,但文档不清楚是否是这样。我看到的最后一次讨论是从2014年开始的。任何人都能更新我的最新情况是什么?这个问题怎么解决了?
答案 0 :(得分:1)
在node.js ..
如果你有一个名为common.js的模块,那就像这样......
'use strict';
var obj = {};
module.exports = obj;
然后在另一个模块中你做了这个
'use strict';
var c = require('./common');
c.test = 1234;
后来另一个模块做了这个..
'use strict';
var c = require('./common');
console.log(c);
//output = { test: 1234 }
modejs中的模块只是另一个对象。 nodejs,缓存任何需求,因此将始终返回相同的对象。
Windows用户的一个问题是,Windows文件名不区分大小写,所以如果你确实需要(' Common'),然后确实需要(' common');你会有2个版本的相同模块。这是将所有模块名称保持为小写的一个很好的理由。