说我有一个大目录,目录中可能有10,000,000多个项目。
如果我使用
fs.readdir(dir, (err, items) => {});
它将加载很多内存,因为items数组将是1000万个项目。是否可以通过一些Linux命令和子进程一次读取目录15000项?
答案 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