Node.js-使用JSON对象作为变量

Node.js - using JSON objects as variables

本文关键字:变量 对象 JSON js- 使用 Node      更新时间:2023-09-26

作为测试场景的一部分,我想使用一些大型JSON对象。我想将这些存储在一个单独的目录中,然后根据需要导入每个对象。

目前我正在使用以下方法:

var t1 = require('./sample_data/t1.json')
var t2 = require('./sample_data/t2.json')

然而,我看到了过时的数据,我猜是因为需要缓存。

我已经尝试导出每个对象,但是我得到了一个包装器对象,它围绕着我需要的JSON,破坏了我的测试

有人能提出建议吗?有更好的方法吗?

问候,本。

更新:我的问题是,当我调整存储的JSON 时,我会看到缓存的结果

我不知道这是否是一个更好的方法,但你也可以使用文件系统模块这样做:

fs.readFile('./sample_data/t1.json', function (err, data) {
  if (err) throw err;
  t1 = JSON.parse(data);
});

更新:

正如Nirk所说,fs.readFile有一个同步版本。如果你想使用那个版本,你的代码应该看起来像:

t1 = JSON.parse(fs.readFileSync('./sample_data/t1.json'));

您的怀疑是正确的。

CCD_ 1缓存模块;它将只从磁盘中读取每个文件一次。

你可以这样破坏这个缓存:

delete require.cache[require.resolve('...')];

或者,您可以使用fs模块自己读取文件,然后调用JSON.parse()
请确保正确传递相对路径或绝对路径(您可能需要调用require.resolve())。