Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

305
Vistas
Descargando el archivo JSON en expressjs y leyéndolo

Tengo una tarea en la que me dan una URL como https://xyz.json . Esta URL solicita la descarga del archivo JSON en el archivo local. Ahora debo leer el uso de estos datos JSON para su posterior procesamiento. Como soy nuevo en NodeJS y Express, me siento confundido acerca de cómo lograr esto en ExpressJS.

Esto es lo que he probado:

 const https = require("https"); const fs = require("fs"); const file = fs.createWriteStream("outputFile.json"); const request = https.get( "https://xyz.json", function (response) { response.pipe(file); // after download completed close filestream file.on("finish", () => { file.close(); console.log("Download Completed"); }); } );

Aquí, en outputFile.json, no hay datos presentes

Qn2) ¿Puedo descargar periódicamente usando setTimeOut()? ¿Sería eficiente o hay alguna forma mejor de almacenar datos en caché para que la aplicación sea más rápida?

¡Gracias por adelantado!

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Aquí hay una aplicación de muestra que descarga un json activado cuando accede a una ruta API alojada como servidor ExpressJS.

 const express = require('express'); const cors = require('cors'); const morgan = require('morgan'); const bodyParser = require('body-parser'); const axios = require('axios'); const fs = require('fs'); const app = express(); app.use(cors()); app.use(morgan(':method :url :status :user-agent - :response-time ms')); app.use(bodyParser.json()); app.get('/', async (req, res) => { try { const { status, data } = await axios.get('http://52.87.135.24/json-files/events.json'); // Can be replaced by your json url if (status === 200) { fs.writeFileSync('data.json', JSON.stringify(data)); res.status(200).json({ success: 'Downloaded file.', data: data // Comment it if you don't want to send the data back }) } else { res.status(404).json({ 'Failed': 'File not found.' }) } } catch (err) { console.log(err); res.status(500).json({ 'Error': 'Internal Server Error' }); } }); app.listen(process.env.PORT || 3000, function () { console.log('Express app running on port ' + (process.env.PORT || 3000)) });

Y como mencioné que esta descarga se activa cada vez que realiza una solicitud en http://localhost:3000 , en este caso, puede crear un script de cliente que actúa como un trabajo cron en el que puede usar setTimeout o setInterval para descargar su archivo periódicamente.

 const axios = require('axios'); setInterval(async () => { await axios.get('http://localhost:3000/'); }, 5000);

¡Aquí hay un guión así! :)

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda