Node.js-使用JSON对象作为变量
Node.js - using JSON objects as variables
作为测试场景的一部分,我想使用一些大型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()
)。
相关文章:
- 替换另一个变量对象中的变量值
- 如何从表单变量对象中获取特定的from属性
- 变量/对象是否按值传递,为什么我不能在 javascript 中使用变量更改对象的属性
- 执行上下文和变量对象在 JavaScript 中实际上是一回事吗?
- 如何将变量对象传递到多个javascript弹出窗体
- 如何将javascript变量/对象从一个页面传递到另一个页面
- 在具有递增的变量/对象中存储和控制传单 GeoJSON 图层
- 在回调中重用变量/对象
- 给一个有1个变量/对象的函数给定几个参数
- 使用单词'英语'因为变量/对象名称在javascript中不起作用
- 如何访问变量对象中的数据
- 使用onclick调用变量对象中的函数
- 使用Underscore JS部分和for循环的未定义变量对象
- 如何查看我的变量对象
- 变量对象属性名称作为javascript中的参数
- 从变量对象中移除DOM元素,以便将其发布到服务器
- 根据变量对象是否等于“true”输出内容
- 如何连接(变量+对象键名)以获得点表示法的对象值
- 为什么在ES5中将变量对象改为词法环境
- 动态引用变量(对象)