我有一个大小为300MB的JSON文件,我正在尝试读取它,但无法正常工作。
如何读取大型JSON文件?如果有人可以用一小段代码指导我,那将是很棒的。
我已经尝试过 fs.readFile
,但没有运气,它适用于较小的文件,但不适用于较大的文件。
以下是我到目前为止尝试过的代码:
app.get('/getData', function (req, res) {
fs.readFile('./uploads/test.json', function (err, data) {
if (err) throw err
var jsonData = data;
var jsonParsed = JSON.parse(jsonData);
res.json(jsonParsed);
});
});
答案 0 :(得分:2)
从代码片段中推测,我认为不需要在分发响应之前对JSON数据进行任何修改(即过滤)。如果是这种情况,则不需要解析JSON,并且可以使用Node.js内置的readable streams来提高效率。
const fs = require('fs');
const path = require('path');
const express = require('express');
const app = express();
app.get('/data', (req, res) => {
res.setHeader('Content-Type', 'application/json');
fs.createReadStream(path.join(__dirname, 'public', 'citylots.json')).pipe(res);
});
app.listen(process.env.PORT || 8080);