Node.js使用请求和管道从URL下载数百万个文件:错误“ errno”:“ EMFILE”,“ code”:“ EMFILE”,“ syscall”:“ connect”

时间:2019-09-17 09:10:53

标签: node.js fs

我已经使用nodejs请求包从url下载文件。如果数据最少,则运行正常,但是如果我使用管道使用流下载了1500个文件,则出现以下错误:

捕获到的异常:{“ errno”:“ EMFILE”,“ code”:“ EMFILE”,“ syscall”:“ connect”,“ port”:8080}

我已经使用async.forEach函数获取用于下载文件的网址数组:

 var datas = [{
filname:"test.txt",
url:"http://testdomain.com/downloadurl"
}];
    async.forEach(datas, (values, callback) => {
                config.lib.request.get(values.url)
                .on('end', function(datas){
                    config.lib.fs.end();
                    console.log(values.filename + " downloading is 
finish...");
                })
            .pipe(config.lib.fs.createWriteStream(values.filename))
            .close()

            callback();
            }, () => {
                return resolve(datas);
            })

0 个答案:

没有答案