csv-parser 无法读取或打开此类 .csv 文件

csv-parser cannot read or open such .csv file

csv 文件是

在我的 index.js 这是我的代码:

    const fs = require('fs');
const csv = require('csv-parser');
const inputFile = "./data.csv"
let results = []

fs.createReadStream(inputFile)
  .pipe(csv())
  .on('data', (data) => results.push(data))
  .on('end', () => {
    console.log(results);
  });

为什么我收到错误消息:没有这样的文件或目录'./data.csv'?

在节点中指定文件路径时,通常相对路径是从执行节点本身的工作目录派生的。这意味着如果你执行

node ./backEnd/index.js

实际工作目录是 backEnd 以上的目录。你可以通过 console.log(process.cwd()).

看到这个

如果你想读取相对于当前正在执行的文件的文件,你可以这样做:

const fs = require('fs');
const path = require('path');
const csv = require('csv-parser');

const inputFile = path.resolve(__dirname, "./data.csv");
let results = []

fs.createReadStream(inputFile)
  .pipe(csv())
  .on('data', (data) => results.push(data))
  .on('end', () => {
    console.log(results);
  });

特别是 __dirname 将始终解析为正在执行的 javascript 文件的目录。在这里使用 path.resolve 在技术上是可选的,您可以手动将路径放在一起,但是使用 resolve 是更好的做法。