节点需要json持久化文件

时间:2015-09-02 21:32:51

标签: json node.js require

在我的一个档案A.js中,我致电var locations = require('./locations.json')。然后我修改位置。

然后在另一个文件中我有同样的事情var locations = require('./locations.json')。但是,它不是具有存储在locations.json中的值的位置,而是包含我在A.js中所做的更改。

A.js

var locations = require('./locations.json')

function func() {
    // Changing the values stored locations
}

B.js

var locations = require('./locations.json')

console.log(locations) // prints out the changes made in A.js instead of what is in locations.json

为什么会发生这种情况并且有什么办法吗?

1 个答案:

答案 0 :(得分:0)

因为require用于模块加载,并且只加载传递它的任何内容的单个副本,并保留对它的引用。有关技术详情,请参阅http://fredkschott.com/post/2014/06/require-and-the-module-system/

如果您只想加载json文件,请改用fs.readFileSync,例如:

var locations = fs.readFileSync('./locations.json');