• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

144
Views
Node.js No se pueden enviar múltiples csv en una carpeta de archivo

Actualmente tengo un problema para crear y enviar un archivo desde un servidor node.js.

De hecho, logré crear un archivo con 5 archivos csv en el archivo, pero cuando envío el archivo a mi aplicación React y cuando descomprimo este archivo, solo tengo un archivo ...

Revisé (local) el archivo creado por el servidor y hay 5 archivos en lugar de uno cuando descomprimí la carpeta y la envié a la aplicación React.

Mi respuesta http:

 import { Parser } from "json2csv"; import archiver from "archiver"; import fs from "fs"; import path from "path"; const output = fs.createWriteStream(`csv/${campaign.title}.zip`, 'utf-8'); const archive = archiver("zip", { zlib: { level: 9 }, // Sets the compression level. }); output.on("close", function () { console.log(archive.pointer() + " total bytes"); console.log("archiver has been finalized and the output file descriptor has closed."); }); output.on("end", function () { console.log("Data has been drained"); }); archive.on("warning", function (err) { if (err.code === "ENOENT") { // log warning } else { // throw error throw err; }}); archive.on("error", function (err) { throw err; }); archive.pipe(output); d.map(items => { let file = items; archive.append(file, { name: file }); }); archive.pipe(res) archive.finalize(); res.setHeader('application/zip') res.setHeader("Content-Disposition", `attachment; filename=${campaign.title}.zip`); res.status(200).send(archive);
almost 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

¿Cuál es el contenido de la d mística? Usas el archivador incorrectamente, creo:

tu codigo:

 d.map(items => { let file = items; archive.append(file, { name: file }); });

pero la documentación dice: https://www.archiverjs.com/docs/archiver#append

 append(source, data) → {this}

Agrega una fuente de entrada (cadena de texto, búfer o secuencia) a la instancia.

Cuando la instancia ha recibido, procesado y emitido la entrada, se activa el evento de entrada.

Parámetros

 source - Buffer | Stream | String - The input source. data - Object - The entry data.

Verifique el contenido y el uso de d : necesita data y nombre de filename para usar en append

EDITAR:

No use Array.map como Array.forEach , es Anti-patrón: ¿realizar una operación de mapeo sin usar el valor devuelto es un antipatrón?

almost 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error