Request: So speichern Sie heruntergeladene Binärdaten ohne Pipe

Erstellt am 19. Jan. 2017  ·  3Kommentare  ·  Quelle: request/request

Versuchen Sie auf meinem Knotenserver, ein PNG-Bild von einer URL herunterzuladen und in eine Datei zu schreiben:

.get("https://url/for/png/file")
.on('error', function(err) {
  console.log(err)
})
.on('response', function(response){
  console.log(response.statusCode) // 200
  console.log(response.headers['content-type']); // 'image/png'
})
.on('complete', (resp: http.IncomingMessage, body: string | Buffer) => {
  fs.writeFile(".../test.png", body, 'binary');

});

Das Hauptproblem ist, dass die geschriebene Datei beschädigt ist (kann nicht geöffnet werden).

Wenn ich am Ende Pipe anstelle von on('complete'...) verwende, ist die geschriebene Datei korrekt.

.pipe(fs.createWriteStream(".../test.png"))

Was genau ist der Unterschied und was fehlt mir, um die Datei schreiben zu können?

Hilfreichster Kommentar

Codierung verwenden: Nulloption

Alle 3 Kommentare

Dasselbe Problem.

Codierung verwenden: Nulloption

@lambdacerro Danke, werde dieses Thema dann schließen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen