TypeError:parse不是csv解析上的函数

llycmphe  于 2023-03-05  发布在  其他
关注(0)|答案(6)|浏览(182)

我在使用以下工具设置一个简单的应用程序后遇到了这个问题:

  • 节点v16.13.2
  • 国家预防机制8.1.2版
  • csv解析v5.0.4

开启

  • VSCode版本1.63.2

代码为:

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!');
    });

运行它会导致:

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)

搜索SO得到了类似的结果,但没有实际的解决方案。

py49o6xq

py49o6xq1#

解决方法很简单。如果parse或任何其他函数不能用node require识别,请尝试将函数本身获取为:

const { parse } = require('csv-parse');

值得注意的是,强调const parse color =白色pipe =绿色中函数parse的用法之间差异的配色方案。

以及const { parse }绿色时的颜色(无错误),与const调用匹配。

niwlg2el

niwlg2el2#

1.尝试使用const {parse} = require('parse')代替const parse = require('parse'),或者
1.尝试使用csv解析版本,而不是"csv-parse": "^5.3.0""csv-parse": "^3.0.0"
csv-parse

wtzytmuj

wtzytmuj3#

而不是使用
const {解析} =需要("csv解析");
尝试关注
const {解析} =需要("csv解析");

zaqlnxep

zaqlnxep4#

通过const {parse} = require(“csv-解析”)在csv-解析模块中获取解析函数本身;
和call .pipe(解析())

9fkzdhlc

9fkzdhlc5#

对我有效的是从“csv解析”更改为“csv解析器”
在package.json中使用此文件

"csv-parser": "^3.0.0"

取代:

"csv-parse": "v5.0.4"
ebdffaop

ebdffaop6#

const fs = require("fs");
const {parse} = require("csv-parse");

const results = [];

fs.createReadStream("./kepler_data.csv").pipe(parse({
   comment: '#',
   columns: true,
})).on('data', (data) => {
   results.push(data)
}).on('end', () => {
   console.log(results);
   console.log('done 🔥');
})

这对我有用

相关问题