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

123
Vistas
Mostrar pantalla de carga hasta que los datos estén listos en ExpressJS

Estoy usando titiritero para raspar un sitio web de trabajo. Todo está funcionando hasta ahora.

 app.get('/', async (req, res) => { res.render('index', {text: 'This is the index page'}); })

Al enviar, el usuario es redirigido a un archivo ejs

 <body> <div class="container"> <input type="text" class="submit" id="city-input" placeholder="Submit City"> <button type="submit" onclick="submitCity()">Submit</button> </div> </body>

guión.js

 function submitCity() { const city = document.getElementById('city-input').value; const url = 'http://localhost:3000/api/germany/' + city window.location.href = url; console.log(city); }

índice.js

 app.get('/api/germany/:key', async (req, res) => { const city = req.params.key; const data = await scraper.scrapeData(city); await db.updateDB(data); await res.render('result', { data: data }); })

Entonces, cuando el usuario hace clic en enviar, puede tomar alrededor de 1-2 minutos hasta que la página de resultados esté lista. Quiero agregar una página/información de carga hasta que los datos se extraigan y estén listos para enviar.

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

0

Puede usar fetch para realizar la solicitud en segundo plano:

 function submitCity() { const city = document.getElementById('city-input').value; const url = 'http://localhost:3000/api/germany/' + city const response = await fetch(url); // make initial request const data = await response.json(); // wait for response body, then parse as json console.log(data); }

Y en el servidor, simplemente devuelva los datos a la solicitud:

 app.get('/api/germany/:key', async (req, res) => { const city = req.params.key; const data = await scraper.scrapeData(city); await db.updateDB(data); return res.json(data); });
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