问题描述
[{"a1":1}]
和 文件2
var obj1 = JSON.parse(fs.readFileSync("./файл 1.JSON","UTF-8"));
module.exports.obj1 = obj1
我启动 程序 ...
for(i=0; ; i++) {
console.log(require('./файл 2').a1);
let bb = JSON.parse(fs.readFileSync("./файл 1.JSON","UTF-8"));
console.log(bb.a1);
(there pause for slowed)
}
那时我纠正了 文件1 。然后,我会在 fs 中看到它,但在 require 中看不到它。 现在的问题是:如何制作,以便 require 显示新值?
解决方法
当节点执行程序并执行require
语句时,它将加载所有模块。然后,它将这些模块缓存起来,以便对同一模块的后续请求给出相同的代码。因此,在您的示例中,在循环中的第一次,文件2将使用它从JSON文件中读取的任何值进行初始化,并且不会被重新初始化。
模块旨在成为静态代码束,并且使用require
多次包含相同的模块应该返回相同的模块。对于像JSON文件这样的动态值,请使用fs
函数在需要时访问这些值。