Request: Cómo guardar datos binarios descargados sin usar tubería

Creado en 19 ene. 2017  ·  3Comentarios  ·  Fuente: request/request

En mi servidor de nodos e intento descargar una imagen png desde una url y escribirla en un archivo:

.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');

});

El problema principal es que el archivo escrito está dañado (no se puede abrir).

Si uso pipe en lugar de on('complete'...) al final, el archivo escrito es correcto.

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

¿Cuál es exactamente la diferencia y qué me falta para poder escribir el archivo?

Comentario más útil

usar codificación: opción nula

Todos 3 comentarios

El mismo problema.

usar codificación: opción nula

@lambdacerro Gracias, cerraré este tema entonces.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

mlegenhausen picture mlegenhausen  ·  4Comentarios

ghost picture ghost  ·  3Comentarios

IgorDePaula picture IgorDePaula  ·  3Comentarios

Guymestef picture Guymestef  ·  3Comentarios

xin7c picture xin7c  ·  3Comentarios