【问题标题】:csv-parser cannot read or open such .csv filecsv-parser 无法读取或打开此类 .csv 文件
【发布时间】:2021-12-10 16:17:54
【问题描述】:

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.js csv-parser


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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-08
      • 2021-02-18
      • 2014-06-27
      • 2021-10-11
      • 2017-04-22
      • 1970-01-01
      • 2016-11-11
      • 2020-11-16
      相关资源
      最近更新 更多