如何重新链接图书馆使用要求? nodejs

问题描述

例如 我有 文件1

[{"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函数在需要时访问这些值。