Os arquivos CSV são um formato de armazenamento de dados conveniente e você pode usá-los em seus projetos Node.js para lidar com qualquer coisa, desde configuração até dados brutos. Eles podem simplificar o compartilhamento de informações entre dois aplicativos, mesmo que sejam escritos em idiomas diferentes.
No Node.js, você pode usar vários métodos para ler e gravar arquivos CSV.
Este tutorial mostra como usar o fs módulo e fast-csv Pacote NPM para ler e gravar arquivos CSV.
Configuração do projeto
Para acompanhar este tutorial, certifique-se de ter o Node.js instalado em sua máquina. Execute este comando para verificar:
nó -v
Ele deve retornar um número de versão. Se você não tiver o Node.js instalado, siga as instruções neste tutorial de instalação fazer isso.
Em seu diretório preferido, crie uma nova pasta chamada parse-csv.
mkdir parse-csv
Navegar para parse-csv e crie um novo arquivo. Nomeie-o parseCSV.js.
cd parse-csv
tocarparseCSV.js
Agora você pode começar a trabalhar com CSV.
Usando o módulo fs
O módulo fs (abreviação de sistema de arquivos) contém vários comandos para interagir com o sistema de arquivos no Node.js.
Leia o arquivo inteiro de uma vez
o readFile() e readFileSync() comandos do fs permitem que você leia o conteúdo do arquivo no Node.js. A diferença entre esses comandos é que readFileSync() é síncrono—ele bloqueia a execução de outro JavaScript—enquanto readFile() é assíncrono ou não bloqueante.
Como a leitura de arquivos CSV pode demorar um pouco, especialmente para arquivos grandes, geralmente é melhor usar o comando sem bloqueio, readFile(), como mostrado abaixo.
const fs = exigir('f');
fs.readFile('csvdemo.csv', 'utf8', função (erro, dados) {
/* analisa os dados */
});
Se você não tiver um arquivo CSV de amostra, poderá gerar um a partir mockaroo. Você também pode aprender a criar um arquivo CSV você mesma.
Ler linha por linha
Enquanto readFile() funciona, consome muita memória, pois lê todo o arquivo CSV de uma só vez. Isso é um problema, especialmente ao trabalhar com arquivos CSV grandes. Uma alternativa é ler uma linha de cada vez usando o fs.createReadStream() comando.
const fs = exigir("fs");
const linha de leitura = exigir("Leia a linha");
fluxo const = fs.createReadStream("./csvdemo.csv");
const rl = readline.createInterface({ entrada: stream });
deixar dados = [];rl.on("linha", (linha) => {
data.push (row.split(","));
});
rl.on("perto", () => {
console.log (dados);
});
Aqui, você está passando o nome do arquivo CSV para fs.createReadStream() para criar um fluxo legível. Os fluxos permitem que você trabalhe com grandes quantidades de dados, permitindo que você os acesse em partes.
Depois de criar o fluxo legível, passe-o para readline.createInterface() método. o Leia a linha O módulo fornece uma interface para ler os dados uma linha de cada vez. Agora você pode enviar cada linha para a matriz de dados enquanto ela está sendo lida.
Observe, no entanto, que esse código simplesmente divide cada linha em vírgulas. Embora isso funcione com o arquivo CSV mais básico, o formato é realmente mais complicado do que o nome indica. Analisar arquivos CSV manualmente não é uma abordagem robusta, especialmente se você não estiver no controle dos dados. Para a maioria das situações, você deve usar uma biblioteca CSV.
Usando fast-csv
Para analisar arquivos CSV de forma confiável, você pode usar uma biblioteca como fast-csv, que está disponível como um pacote npm. Torna mais fácil não apenas ler arquivos CSV, mas também formatá-los.
Para começar, inicialize npm e instale fast-csv.
npm init -y
npm i fast-csv
Leia arquivos CSV usando fast-csv da seguinte maneira.
const fs = exigir('f')
const csv = exigir('fast-csv');
const dados = []
fs.createReadStream('./csvdemo.csv')
.tubo(csv.parse({ cabeçalhos: verdadeiro }))
.em('erro', erro => console.error (erro))
.em('dados', linha => data.push (linha))
.em('fim', () => console.log (dados));
No código acima, comece criando um fluxo legível do arquivo CSV e conecte-o ao método de análise do CSV rápido usando tubo(). Observe que você está passando a opção de cabeçalhos para csv.parse(). Isso pula a primeira linha. Definir cabeçalhos para falso se a primeira linha do arquivo CSV não contiver cabeçalhos.
À medida que o arquivo CSV é lido uma linha por vez, você está enviando cada linha para a matriz de dados. Após a leitura de todo o arquivo, você pode manipular o conteúdo da matriz de dados conforme desejar.
Há mais de uma maneira de analisar um CSV
Os arquivos CSV são úteis para armazenar grandes conjuntos de dados porque é fácil analisá-los. No Node.js, você pode usar o módulo fs integrado ou os pacotes NPM.
Usar uma biblioteca como o fast-csv é muito mais fácil e robusto do que escrever seu próprio código de análise manualmente. Alguns outros pacotes para analisar CSV são csv-parser e papa analisador.
Um guia para iniciantes em APIs RESTful em Node.js
Leia a seguir
Tópicos relacionados
- Programação
- Programação
- JavaScript
Sobre o autor

Mary Gathoni é uma desenvolvedora de software apaixonada por criar conteúdo técnico que não seja apenas informativo, mas também envolvente. Quando ela não está codificando ou escrevendo, ela gosta de sair com os amigos e estar ao ar livre.
Assine a nossa newsletter
Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!
Clique aqui para assinar