Es tut mir leid, wenn ich etwas vermisse - ich lerne immer noch Node-Logik (vor allem asynchrone Jobs).Request und WriteStream Dateiname
Ich möchte eine Zip-Datei herunterladen, dann speichern und entpacken. Es sieht wie folgt aus:
request(URL)
.pipe(fs.createWriteStream(/path/to/filename))
.on('close', function() {
// I want to unzip and I need access to filename
});
Nun ist die Sache, wenn ich eine filename
Variable vorher festgelegt, da es in einer Schleife ist, durch die Zeit, die Datei heruntergeladen wird, filename
wird der Wert der letzten Schleife Iteration haben.
Natürlich sehe ich, dass wir es tun können, indem wir eine Funktion definieren, die all dies tun würde, wie fecthAndUnzip(URL,path)
. Aber meine Frage ist eher designbezogen: Ist es der einzige Weg, wie wir es in Node schaffen können, oder gibt es einen besseren? Zum Beispiel, kann ich auf den Dateinamen im on('close')
Ereignis zugreifen und wenn ja, sollte ich? Vielen Dank!
Große, umfassende Antwort auch. Meine Frage war mehr designbezogen (obwohl ich immer noch neugierig auf meinen speziellen Anwendungsfall mit 'fs.createWriteStream()' bin, d. H. Wenn wir den Dateinamen in 'on ('close')' holen können). Ich verwende tatsächlich ES6, und genau deshalb hatte ich dieses Problem. Ich wusste, dass die Funktion funktionierte (so war ich in der Vergangenheit), aber ich lerne immer noch ES6 und ich glaube, dass es wichtig ist, diese Konzepte schnell zu integrieren. Danke und danke auch für den Link! – Johy
Ich sehe was du jetzt meinst, die Antwort gibt es nicht. Die Veranstaltung ist ziemlich unabhängig, glaube ich und es wird erwartet, dass andere Informationen an anderer Stelle abgerufen werden. – Froast
Macht vollkommen Sinn und ich lernte Best Practices, die ich auf dem Weg nicht kannte. Vielen Dank! – Johy