您好我正在玩节点并遇到错误我不知道如何修复:
stream.js:81
throw er; // Unhandled stream error in pipe.
Error: socket hang up
at createHangUpError (http.js:1344:15)
at Socket.socketOnEnd [as onend] (http.js:1432:23)
at TCP.onread (net.js:419:26)
我的脚本读取的文件包含页面的网址,这些网页本身包含图像的网址 我下载并保存。你能解释一下如何解决这个问题吗?对不起我的英文......
var fs = require('fs');
var request = require('request');
var lazy = require('lazy');
var lines = new lazy(fs.createReadStream('./' + dir + '/links.txt'))
.lines
.forEach(function (line) {
var req = request(line, function (error, res, body) {
if(res.statusCode == 200) {
var urlImg = body.match(/<img id="img".+?src="(.+?)"/)[1];
var stream = fs.createWriteStream(urlImg);
var req2 = request(urlImg).pipe(stream);
};
});
});
答案 0 :(得分:1)
可能是你同时发出太多请求。
request(..)
立即返回,因此您有可能执行大量的http请求。尝试以较小的批次发送它们(即发送100,然后等待所有人返回,再发送100)等等。