down.js
/ ** *クローラーノード * / VARのFS =( 'FS')が必要です。 VAR =( "要求")を要求する要求; VAR =チェリオ( "チェリオ")を必要とします。 VAR =非同期( '非同期')を必要とします。 //ローカルストレージディレクトリ VAR DIR =」./images'; //同時 。VAR = asyncNum 5; //フォト 機能downloadImg(写真、DIR、asyncNum){ はconsole.log(「今後の同時非同期ダウンロード写真、同時の現在の数:「+ asyncNum); async.mapLimit(写真、asyncNum、関数(写真、コールバック){ VAR photo.substrファイル名=(-5 ,. 5); IF(ファイル名){ にconsole.log(+写真'ダウンロード') ; //デフォルト // fs.createWriteStream(DIR + "/" +ファイル名) //パイプ・エラーを防ぎます 要求を(写真) .on( 'エラー'、関数(ERR){ にconsole.log(ERR); }) .pipe(fs.createWriteStream(DIR + "/" +名)); console.log( '下载完成'); コールバック(ヌル、ファイル名); } }、関数(ERR、結果){ IF(ERR){ にconsole.log(ERR)。 } {他に はconsole.log( "大丈夫!"); console.log(結果)。 } }) } VAR originUrl =「http://mhpic.mh51.com/comic/Y/%E9%A9%AD%E7%81%B5%E5%B8%88/3-6%E8%AF%9D /1.jpg '; = 10 VaRの合計。 VAR写真= []; ため(VAR I 1 =; I <=和; I ++){ VAR URL = originUrl.substring(0、originUrl。 photos.push(URL + I + '.JPG'); } photos.forEach((URL、IDX)=> { LETファイル名= url.split( '/')POP();. //画像は、元のネットワークを有しています地元の絵にちなんで名付けられた //リクエスト(URL {})。パイプ( // fs.createWriteStream(./images `/` $ {ファイル名}).on( '閉じる'、ERR => {はconsole.log(「書き込み失敗した'ERR)}) //) request.GET({URI:URL、エンコード:'バイナリを「}、機能(ERR、RES){ IF(ERR){! fs.writeFile( `./images / $ { } `ファイル名、res.body、 "バイナリ"、機能(ERR、RES){ IF(ERR!){ // } {他 にconsole.log(ERR); } }) } }) }) // downloadImg(写真、DIR、asyncNum)
。