在Node.js中使用fs.readFile()时出现"错误:确定"(在大约十万次迭代之后)?

gre*_*emo 4 node.js

我正在"走"十万个JSON文件,读取内容并在发生错误时抛出错误:

walk(__dirname + '/lastfm_test', 'json', function (err, files) {
    files.forEach(function (filePath) {
        fs.readFile(filePath, function (err, data) {
            if (err) throw err;
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

walk函数很大程度上受这个问题的启发(chjj答案).在一些迭代之后,该行if (err) throw err被执行.错误抛出是:

错误:好的,打开'path/to/somejsonfile.json'

有机会调查这里发生的事情吗?我敢肯定的是,walk功能是确定:其实更换呼叫fs.readFile()console.log(filePath)显示的路径.没有错误.

一些有用的信息:Windows 7 x64,node.exe x64 .0.10.5.Last.fm数据集从这里下载.

Myr*_*tol 5

我建议使用graceful-fs模块来实现此目的.它将自动限制打开文件描述符的数量.它是由npm的创建者和Node的维护者Isaac Schlueter编写的,所以它非常可靠.裸露的fs模块让你可以用脚射击自己.