nodejs将相同的variables传递给不同的模块

在我的应用程序中,我有两个模块,都需要一个对象variables,但在他们,他们稍微改变其内容:

In app.js var example = {title: "test"}; var admin = require('./admin'); var research = require('./research'); admin.data(example); research.data(example); console.log(admin.get()); console.log(research.get()); In research.js var datasnapshot = null; module.exports = {data: updateData, get: getData}; function updateData(data) { datasnapshot = data; } function getData() { return datasnapshot } In admin.js var datasnapshot = null; module.exports = {data: updateData, get: getData}; function updateData(data) { datasnapshot = data; datasnapshot.title = "Admin Panel"; } function getData() { return datasnapshot } 

问题是,那个botch console.log()返回我{title:“pipe理面板”},尽pipe事实上,我只希望它是这样的第二个模块。 预先感谢您的帮助!

问题是,botch console.log()返回我{title:“pipe理面板”}

因为您将同一对象传递给两个模块 ,所以当第二个模块更新值时,它也反映在第一个模块中。

我只希望它能像第二个模块一样

如果你想确保每个模块都使用自己的示例对象副本,那么修改你的updateData方法

 //for research.js function updateData(data) { datasnapshot = JSON.parse(JSON.stringify(data)); //deep copying the object } //for admin.js function updateData(data) { datasnapshot = JSON.parse(JSON.stringify(data)); datasnapshot.title = "Admin Panel"; } 

还有其他方法可以在这里深度复制对象共享