0

こんにちは、私は現在ノードで遊んでいて、修正方法がわからないエラーが発生しました:

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)

私のスクリプトは、ダウンロードして保存した画像の URL を含むページの URL を含むファイルを読み取ります。これを修正する方法を説明できますか? 私の英語でごめんなさい...

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);
            };
        });

    });
4

1 に答える 1

1

同時リクエストが多すぎる可能性があります。

request(..)すぐに戻るので、大量の http リクエストを実行する可能性があります。小さいバッチで送信してみてください (つまり、100 を送信し、すべてが戻ってくるのを待って、別の 100 を送信するなど)。

于 2013-02-21T20:40:03.490 に答える