首页 > 解决方案 > 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);
  });
});

标签: javascriptnode.jsjson

解决方案


推荐阅读