Los archivos CSV son un formato de almacenamiento de datos conveniente y puede usarlos en sus proyectos de Node.js para manejar cualquier cosa, desde la configuración hasta los datos sin procesar. Pueden simplificar el intercambio de información entre dos aplicaciones, incluso si están escritas en diferentes idiomas.

En Node.js, puede usar varios métodos para leer y escribir archivos CSV.

Este tutorial le muestra cómo usar el fs módulo y rápido-csv Paquete NPM para leer y escribir archivos CSV.

Configuración del proyecto

Para seguir este tutorial, asegúrese de tener Node.js instalado en su máquina. Ejecute este comando para verificar:

nodo -v

Debería devolver un número de versión. Si no tiene instalado Node.js, siga las instrucciones de este tutorial de instalación para hacerlo

En su directorio preferido, cree una nueva carpeta llamada parse-csv.

mkdir parse-csv

Navegar a analizar-csv y crear un nuevo archivo. Nómbrelo parseCSV.js.

discos compactos analizar-csv
toqueparseCSV.js

Ahora puede comenzar a trabajar con CSV.

instagram viewer

Uso del módulo fs

El módulo fs (abreviatura de sistema de archivos) contiene varios comandos para interactuar con el sistema de archivos en Node.js.

Leer todo el archivo a la vez

Él leer archivo () y readFileSync() comandos de la fs El módulo le permite leer el contenido del archivo en Node.js. La diferencia entre estos comandos es que readFileSync() es síncrono, bloquea la ejecución de otro JavaScript, mientras que leer archivo () es asincrónico o no bloqueante.

Dado que la lectura de archivos CSV puede llevar un poco de tiempo, especialmente para archivos grandes, a menudo es mejor usar el comando sin bloqueo, leer archivo (), Como se muestra abajo.

constante f = exigir('fs');

fs.readFile('csvdemo.csv', 'utf8', función (err, datos) {
/* analizar datos */
});

Si no tiene un archivo CSV de muestra, puede generar uno desde simulacro. También puede aprender cómo crear un archivo CSV tú mismo.

Leer línea por línea

Mientras leer archivo () funciona, consume mucha memoria ya que lee todo el archivo CSV de una sola vez. Esto es un problema, especialmente cuando se trabaja con archivos CSV de gran tamaño. Una alternativa es leer una línea a la vez usando el fs.createReadStream() dominio.

constante f = exigir("fs");
constante línea de lectura = exigir("línea de lectura");
corriente const = fs.createReadStream("./csvdemo.csv");
constante rl = readline.createInterface({ aporte: arroyo });
dejar datos = [];

rl.on("línea", (fila) => {
datos.push (fila.dividir(","));
});

rl.on("Cerrar", () => {
consola.Dato de registro);
});

Aquí, está pasando el nombre de archivo CSV a fs.createReadStream() para crear un flujo legible. Las secuencias le permiten trabajar con grandes cantidades de datos al permitirle acceder a ellos en fragmentos.

Una vez que cree la transmisión legible, pásela a readline.createInterface() método. Él línea de lectura El módulo proporciona una interfaz para leer los datos una línea a la vez. Ahora puede enviar cada fila a la matriz de datos a medida que se lee.

Tenga en cuenta, sin embargo, que este código simplemente divide cada fila en comas. Aunque esto funcionará con el archivo CSV más básico, el formato es en realidad más complicado de lo que su nombre indica. El análisis manual de archivos CSV no es un enfoque sólido, especialmente si usted mismo no tiene el control de los datos. Para la mayoría de las situaciones, debe usar una biblioteca CSV.

Usando fast-csv

Para analizar archivos CSV de manera confiable, puede usar una biblioteca como rápido-csv, que está disponible como paquete npm. Hace que sea más fácil no solo leer archivos CSV sino también formatearlos.

Para comenzar, inicialice npm e instalar rápido-csv.

npm inicializar -y
npm i fast-csv

Lea los archivos CSV usando fast-csv de la siguiente manera.

constante f = exigir('fs')
constante CSV = exigir('rápido-csv');
constante datos = []

fs.createReadStream('./csvdemo.csv')
.tubo(CSV.analizar gramaticalmente({ encabezados: verdadero }))
.sobre('error', error => consola.error (error))
.sobre('datos', fila => data.push (fila))
.sobre('fin', () => consola.log (datos));

En el código anterior, comience creando un flujo legible desde el archivo CSV y luego conéctelo al método de análisis de CSV rápido usando tubo(). Tenga en cuenta que está pasando la opción de encabezados a csv.parse(). Esto salta la primera fila. Establecer encabezados para falso si la primera fila de su archivo CSV no contiene encabezados.

Como el archivo CSV se lee una fila a la vez, está empujando cada fila a la matriz de datos. Después de leer todo el archivo, puede manipular el contenido de la matriz de datos como desee.

Hay más de una forma de analizar un CSV

Los archivos CSV son útiles para almacenar grandes conjuntos de datos porque es fácil analizarlos. En Node.js, puede usar el módulo fs integrado o los paquetes NPM.

Usar una biblioteca como fast-csv es mucho más fácil y más robusto que escribir su propio código de análisis manualmente. Algunos otros paquetes para analizar CSV son analizador csv y papá analizador.

Una guía para principiantes sobre las API RESTful en Node.js

Leer siguiente

CuotaPíoCuotaCorreo electrónico

Temas relacionados

  • Programación
  • Programación
  • JavaScript

Sobre el Autor

María Gathoni (18 artículos publicados)

Mary Gathoni es una desarrolladora de software apasionada por crear contenido técnico que no solo sea informativo sino también atractivo. Cuando no está codificando o escribiendo, le gusta salir con amigos y estar al aire libre.

Más de Mary Gathoni

Suscríbete a nuestro boletín

¡Únase a nuestro boletín para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse