【发布时间】:2019-06-16 15:30:14
【问题描述】:
我在 Nodejs 中看到了从本地读取 JSON 文件的不同方法。像这样;
-
方法
使用 fs 库
同步
var fs = require('fs'); var obj = JSON.parse(fs.readFileSync('file', 'utf8'));异步:
var fs = require('fs'); var obj; fs.readFile('file', 'utf8', function (err, data) { if (err) throw err; obj = JSON.parse(data); }); -
方法
使用 require()
let data = require('/path/file.json'); -
方法
使用 Ajax 请求 How to retrieve data from JSON file using Jquery and ajax?
可能还有其他方法。但是我听说使用方法 1 读取 JSON 文件时比其他方法更有效。
我正在开发一个模块,当每个客户端请求时我必须读取一个 JSON 文件,并且我当前使用方法 1。这是银行应用程序,性能很重要。所以帮我找到使用这个senario的好方法?
谢谢,任何帮助将不胜感激!
【问题讨论】:
-
如果您不需要 fs,并且希望它同步,使用 require 是最有效的,因为它可以节省内存。如果您不需要 fs 并且希望它异步,则使用 xmlHttpRequest 是最有效的。如果您需要 fs 来处理其他事情,那么 fs 在任何一种情况下都是最有效的方法,因为一旦加载它就比 require 快,而且它的时间成本比 xmlHttpRequest
-
@Asthmatic 太好了,谢谢!这个答案会很有帮助。 :)
-
如果您正在处理大型 JSON,那么迄今为止最大的瓶颈将是
JSON.parse本身。它要求您将整个文件加载到String中(另外,JavaScript 使用 UTF16,因此内存使用量增加了一倍)并且盲目的 JSON 解析非常慢。如果您的输入是数组或字典,您可以 1) 流式传输 JSON 解析,以便在加载整个文件之前开始工作,2) 在解析时过滤,以便只生成所需的对象。
标签: javascript node.js json ajax