使用nodejs读取大目录

时间:2018-09-01 19:31:05

标签: node.js macos unix

说我有一个大目录,目录中可能有10,000,000多个项目。

如果我使用

fs.readdir(dir, (err, items) => {});

它将加载很多内存,因为items数组将是1000万个项目。是否可以通过一些Linux命令和子进程一次读取目录15000项?

1 个答案:

答案 0 :(得分:1)

要将文件夹/目录数据流式传输到Node.js中,可以使用:

const rl = require('readline');
const cp = require('child_process');

const k = cp.spawn('bash');
k.stdin.end(`find . -maxdepth 1 -type f`);

rl.createInterface({
  input: k.stdout,
})
.on('line', v => {
    // new file path
});

更多有关此Github线程的信息: https://github.com/nodejs/node/issues/21804