Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

297
Visualizações
Analizar csv usando el nodo "csv-parser" JS

Estoy usando la biblioteca 'csv-parser'. Usando el método a continuación, puedo obtener los datos almacenados en la matriz de cumpleaños que se muestra en la consola:

 const birthdays = []; fs.createReadStream('./data/groupes.csv') .pipe(csv({})) .on('data', (data) => birthdays.push(data)) .on('end', () => { console.log(birthdays) });

pero cuando inicio sesión fuera de .on('end') como se muestra a continuación, la consola muestra la matriz de cumpleaños como vacía:

 const birthdays = []; fs.createReadStream('./data/groupes.csv') .pipe(csv({})) .on('data', (data) => birthdays.push(data)) .on('end', () => { }); console.log(birthdays)

¿Porqué es eso? y como puedo solucionarlo? Gracias por adelantado.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

¿Porqué es eso?

Es porque createReadStream funciona de forma asíncrona y cuando console.log(birthdays); afuera, la ejecución del código lee el registro antes de que createReadStream haya terminado de procesarse

¿Cómo puedo resolverlo?

Hiciste bien en ponerlo dentro de .on("end")

 const birthdays = []; fs.createReadStream('./data/groupes.csv') .pipe(csv({})) .on('data', (data) => birthdays.push(data)) .on('end', () => { console.log(birthdays); // further processing with birthdays });
about 4 years ago · Juan Pablo Isaza Relatório

0

¿Podrías hacer algo como esto?

 const csv = require("csv-parser"); const fs = require("fs"); const path = require("path"); const { promisify } = require("util"); const readFile = promisify(fs.readFile); const birthdays = []; const filePath = path.join(__dirname, "data", "groupes.csv"); readFile(filePath, "utf8").then((data) => { csv(data, { separator: ",", }) .on("data", (row) => { birthdays.push(row); }) .on("end", () => { console.log(birthdays); }); });
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda