Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

416
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!