2017-11-30 13 views
0

複数の画像をダウンロードしようとしています。"パイプで処理されていないストリームエラー" - express.jsを使用しているファイルが多すぎます

10枚の写真をダウンロードすることがあります。時々500枚の写真をダウンロードする場合は、次のエラーが発生します。

解決策を見つける必要があります。

internal/streams/legacy.js:59 
    throw er; // Unhandled stream error in pipe. 
^

Error: read ECONNRESET 
at _errnoException (util.js:1024:11) 
at TCP.onread (net.js:615:25) 

Datasには画像のダウンロードURLがあります。

let arrDatas = []; 

    datas.map(data => { 
     arrDatas.push(
     new Promise((resolve, reject) => { 
      request.head(data.url, (err, res, body) => { 
      if (!err && res.statusCode === 200) { 
       let imgType; 
       if (
       res.headers["content-type"] === 
       "application/octet-stream" 
      ) { 
       imgType = "jpeg"; 
       } else { 
       imgType = res.headers["content-type"].split("/")[1]; 
       } 

       request({ 
       url: data.url, 
       headers: { 
        "Keep-Alive": "max=2000" 
       } 
       }) 
       .pipe(
        fs.createWriteStream(
        "server/downloads/" + createUniqueSHA1String() + "." + imgType 
       ) 
       ) 
       .on("close", close => { 
        resolve(true); 
       }); 
      } else { 
       resolve(false); 
      } 
      }); 
     }) 
    ); 
    }); 


    Promise.all(arrDatas).then(result => { 
     res.json(result); 
    }) 
    .catch(err => { 
     res.status(500).json(err.message); 
    }); 

誰でも手伝ってもらえますか?

答えて

1

他のエンドポイントが接続を途中で終了しているようですが、これを見てください: Node js ECONNRESET

関連する問題