Me encontré con este problema después de configurar una aplicación simple usando:
El código es:
const parse = require('csv-parse'); const fs = require('fs'); const results = []; fs.createReadStream('kepler_data.csv') .pipe(parse({ comment: "#", columns: true, })) .on('data', (data) => { results.push(data); }) .on('error', (err) => { console.log(err); }) .on('end', () => { console.log(results); console.log('Done!'); });Ejecutarlo resultó en:
index.js:7 .pipe(parse({ ^ TypeError: parse is not a function at Object.<anonymous> (/home/jadeye/node.js_workspace/PLANETS-PROJECT/index.js:7:11) at Module._compile (node:internal/modules/cjs/loader:1101:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)Buscar SO dio resultados similares pero no una solución real.
La solución fue simple. Si parse o cualquier otra función no se reconoce con node require , intente obtener la función en sí misma como:
const { parse } = require('csv-parse'); Algo digno de mención es el esquema de color que enfatiza la diferencia entre la const parse color= white , y el uso de la función parse inside pipe = green .
Y los colores sin error donde const { parse } es verde , coinciden en la llamada const .
En lugar de usar
const { analizar } = require('csv-parse');
Intenta seguir
const {analizar} = require("csv-analizar");
obtenga la función de análisis en el módulo csv-parse haciendo const {parse} = require("csv-parse");
y llame a .pipe(parse())