0

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'?

4

1 回答 1

1

在 node 中指定文件路径时,通常相对路径来自执行 node 本身的工作目录。这意味着如果您执行

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在技术上是可选的,您可以手动将路径放在一起,但是使用解析是更好的做法。

于 2021-10-25T06:39:17.460 回答