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

417
Vistas
¿Cómo generar un archivo xlsx a través de Express con Exceljs y enviarlo al cliente?

Quiero separar los controladores y los servicios en mi aplicación Express, actualmente tengo un servicio que genera un archivo XLSX usando ExcelJS, quiero reutilizar el servicio, así que no quiero pasar el objeto de respuesta al servicio, ¿está ahí? una forma en que puedo devolver el archivo del servicio al controlador?

Ahora mismo tengo lo siguiente

 const generateXLSX = (res, data) => { let baseFile = "path/to/template.xlsx"; let wb = new Excel.Workbook(); wb.xlsx .readFile(baseFile) .then(async () => { // add data to template } await wb.xlsx.write(res); res.end(); }) .catch((err) => { console.log(err); res.status(500); }); };

En esta función, estoy usando el objeto de respuesta en el servicio, quiero saber si hay una forma de devolver el archivo sin usar write(res) y enviarlo al controlador.

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

0

Su función generateXLSX podría devolver una secuencia legible de "paso" que luego canaliza al objeto res . Algo como

 const {PassThrough} = require("stream"); function generateXLSX(data) { let baseFile = "path/to/template.xlsx"; let wb = new Excel.Workbook(); let readable = new PassThrough(); wb.xlsx .readFile(baseFile) .then(async function() { // add data to template await wb.xlsx.write(readable); readable.end(); }) .catch((err) => { readable.destroy(err); }); return readable; } app.use("/path", function(req, res) { generateXLSX(req.query.data).pipe(res); });
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