Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

152
Visualizações
Javascript: la imagen ya no se descarga

El siguiente código se utiliza para descargar una imagen mientras se le agrega un nombre personalizado. Me olvidé un poco de eso por un tiempo y quería volver a intentar la descarga y ya no funciona. ¿Me equivoqué en algo aquí?

 let imageInit = 'https://via.placeholder.com/350x150'; let image = imageInit.replace('350x250', '200x200'); if (!image) { return; } var download = function (uri, filename, callback) { request.head(uri, function (err, res, body) { console.log('content-type:', res.headers['content-type']); console.log('content-length:', res.headers['content-length']); request(uri).pipe(fs.createWriteStream(filename)).on('close', callback); }); }; const generatedName = uuidv4(); const finalName = generatedName.concat('.png'); download(image, finalName, function () { console.log('done'); });

Editar: Esto es raro. Al intentar con este enlace 'https://www.google.com/images/srpr/logo3w.png' se descarga, pero no funciona con ningún otro enlace.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Cuando completo los módulos apropiados que está utilizando, este código aquí funciona bien para mí en el nodo v16.13.2:

 const request = require('request'); const { v4: uuidv4 } = require('uuid'); const fs = require('fs'); let imageInit = 'https://via.placeholder.com/350x150'; let image = imageInit.replace('350x250', '200x200'); if (!image) { return; } var download = function(uri, filename, callback) { request.head(uri, function(err, res, body) { console.log('content-type:', res.headers['content-type']); console.log('content-length:', res.headers['content-length']); request(uri).pipe(fs.createWriteStream(filename)).on('close', callback); }); }; const generatedName = uuidv4(); const finalName = generatedName.concat('.png'); console.log(finalName); download(image, finalName, function() { console.log('done'); });

¿Hay algo diferente en todo tu código? ¿O este código específico no te funciona?

Cosas que puedes examinar en tu propio código:

  1. Agregue el manejo de errores tanto al flujo de request() como al flujo de escritura para registrar cualquier error.
  2. Intente cargar la URL https://via.placeholder.com/200x200 en su propio navegador para ver si funciona.
  3. Cuéntanos más sobre el significado real de "ya no funciona". ¿Qué observas? ¿Qué ves en los registros? ¿Dónde deja de ejecutarse?

Aquí hay una versión del código con mucho más manejo/registro de errores:

 const request = require('request'); const { v4: uuidv4 } = require('uuid'); const fs = require('fs'); let imageInit = 'https://via.placeholder.com/350x150'; let image = imageInit.replace('350x250', '200x200'); if (!image) { return; } var download = function(uri, filename, callback) { request.head(uri, function(err, res, body) { if (err) { console.log(err); callback(err); return; } console.log('content-type:', res.headers['content-type']); console.log('content-length:', res.headers['content-length']); let wStream = fs.createWriteStream(filename).on('error', err => { console.log(err); }); let rStream = request(uri).on('error', err => { console.log(err); }); rStream.pipe(wStream).on('close', () => callback(null)); }); }; const generatedName = uuidv4(); const finalName = generatedName.concat('.png'); console.log(finalName); download(image, finalName, function(err) { if (err) { console.log('finished with error'); } else { console.log('done'); } });

Tenga en cuenta que el módulo request() ha quedado obsoleto, por lo que realmente no debería usarse en el código nuevo en el futuro. Un buen conjunto de alternativas aquí .

about 4 years ago · Juan Pablo Isaza Relatório

0

Después de mucha investigación encontré la fuente del problema; Tuve process.exit(1); al final de mi código.

Esto se agregó para terminar con la ejecución de todo el código una vez que todo esté terminado, pero aparentemente con esto tampoco se descarga la imagen. Eliminarlo solucionó el problema además del fragmento proporcionado por @jfriend00.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda