如何从Node.js中的修改对象获取值

时间:2017-04-30 17:27:56

标签: javascript node.js

如何获取对象的修改值? index.js在index2.js之前调用 的 object.js



var object = {
  size:'5'
};

var setSize = function(size) {
  object.size = size;
}
  
exports.object = object;
exports.setSize = setSize;




index.js



var obj = require('path/object');

obj.setSize('10');
console.log(obj.object.size); //--> 10




index2.js 我希望结果是10。



var obj = require('path/object');
console.log(obj.object.size); //--> 5




1 个答案:

答案 0 :(得分:0)

如果您与node index.js分开运行node index2.jsindex2.js就无法知道"在index.js的最后一个过程中发生了什么。您必须在单个流程运行中应用所有操作。正如@Andrew Li在评论中所说,你必须在requireindex.js index2.js。只需要它,就可以执行它的代码,obj.object的更改将保存在节点模块缓存机制中。

var obj = require('path/object');
require('./index'); 
// code inside index.js gets executed, changing obj.size to '10'
// note that this will also log '10' in the console, since a console.log(obj.size)
// is part of your code in index.js


console.log(obj.object.size) //--> 10

如果您需要在不同的进程中执行index.jsindex2.js但仍能够访问obj的连贯值,则需要将该值存储在进程外的某个位置空间,就像在数据库或文件系统中一样。