2016-05-03 39 views
-2

我有一个变量,我想要在模块之间共享并添加到它,从中删除并在Node.js程序中修改它是我所做的:Node.js:模块之间通过module.exports共享变量

shared_storage.js

var locations = {}; 
locations['Brandenburg Gate'] = {latitude: 52.516272, longitude: 13.377722}; 
locations['Dortmund U-Tower'] = {latitude: 51.515, longitude: 7.453619}; 

module.exports = locations; 


var state = new Object(); // Create the object 
state.ready = "r"; 
state.offline = "o"; 
state.loaded = "l"; 


var location_stats = {}; 

location_stats ['Brandenburg Gate'] = state.ready; 
location_stats ['Dortmund U-Tower'] = state.loaded; 

module.exports = location_stats ; 

mymodule.js

var spots= require('./shared_storage').locations; 
console.log(spots); 

但结果是:

不确定

哪里是我添加到变量在shared_storage.js项目吗?

+0

可以请您发布完整的shared_storage.js吗?你是否创建了构造函数?如果是的话,你有导出构造函数。 – Subburaj

回答

1

变化 ​​3210

var spots= require('./shared_storage')

原因是要导出对象作为一个模块,这样你就不需要访问模块属性,因为它没有任何自己财产:)

现在已经修复,您需要重新考虑您的实施。通过另一个模块在模块之间共享状态很简单,但不是很好。对于几个原因:

  1. 服务器崩溃/重新启动
  2. 多实例服务
  3. 这是一个肮脏的方法(内存泄漏,很难抽象等)

更好,最简单的方法是将这些数据存储在数据库中