2017-11-25 3 views
0

Ich brauche make in Nodejs zu programmieren, die Listen Dateien einer anderen Website nehmen und in meinem Rechner speichern.Wie kann man mehrere Dateien mit nodejs herunterladen und speichern?

zum Beispiel:

function saveLocalFiles(files) { 
 
    for (var i in files) { 
 
     var file = fs.createWriteStream(path.join(__dirname, "media/" + files[i].FILE)); 
 
     console.log(URL + files[i].FILE); 
 
     http.get(URL + files[i].FILE, function (response) { 
 
      response.pipe(file); 
 
      file.on('finish', function() { 
 
       file.close(() => { 
 
        console.log("ends ->" + files[i].FILE); 
 
       }); 
 

 
      }); 
 
     }) 
 
    } 
 
}

wenn ich ausführen es meinen Code nicht mit mehreren Dateien funktioniert. Außerdem kann ich nicht wissen, wann es endet, um die Dateien herunterzuladen. Kann mir jemand helfen?.

Vielen Dank.

Antwort

2

Verwendung Versprechen und versuchen Sie den Code in zwei Funktionen aufgeteilt:

function saveLocalFiles(files) { 
    Promise 
     .all(files.map(file => saveLocalFile((URL, file.FILE)))) 
     .then((files) => { 
      console.log(files); 
     }) 
} 

function saveLocalFile(URL, FILE) { 
    return new Promise((resolve) => { 
     var file = fs.createWriteStream(path.join(__dirname, "media/" + FILE)); 
     console.log(URL + FILE); 
     http.get(URL + FILE, function (response) { 
      response.pipe(file); 
      file.on('finish', function() { 
       file.close(() => { 
        console.log("ends ->" + FILE); 
        resolve(FILE); 
       }); 
      }); 
     }) 
    }) 
} 
+0

dies ist für mich gearbeitet. danke – Antablack

+0

@ Antablacks willkommen bro;) –

Verwandte Themen