javascript - Node.js 如何逐行读取大型 JSON 文件(无需将其完全加载到内存中)
问题描述
我的 JSON 文件在内存中非常大(≈ 500MB),并且我应该同时读取多个文件。有什么方法可以在 Node.js 中做到这一点?(有或没有任何外部库)
const searchStream = (path, text = '') => new Promise((resolve, reject) => {
const inStream = fs.createReadStream(path);
const outStream = new Stream();
const rl = readline.createInterface(inStream, outStream);
const result = [];
let count = 0;
const regEx = new RegExp(text, 'i');
rl.on('line', (line) => {
if (line && line.search(regEx) >= 0) {
count++;
result.push(line);
}
});
rl.on('close', () => {
resolve({
result,
count,
});
});
rl.on('error', (err) => {
reject(err);
});
});
解决方案
推荐阅读
- asp.net-mvc - ASPNET Core MVC - 获取 url 的表单
- angular - 访问FormArray里面FormGroup中的FormControl
- node.js - 从纬度和经度查询时NodeJs地理附近问题
- javascript - 如何使用jspdf生成完整的pdf?
- javascript - 使用 getDerivedStateFromProps 访问状态集
- python - python - 函数名中的语法`=>`是什么意思?
- django - 如何在 django Python 中发送 xml 请求并接收 xml 响应?
- python - 在 Python 中实现 JavaScript 的可选参数样式
- javascript - 如何在 JavaScript 中显示 SweetAlert
- python-3.x - Keras卷积层:model.add(Convolution2D(32, 3, 3 input_shape = (img_width, img_height, 3)))