首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Node JS上使用papaparse?

如何在Node JS上使用papaparse?
EN

Stack Overflow用户
提问于 2020-08-31 19:20:03
回答 3查看 1.4K关注 0票数 2

我已经尝试在nodejs上运行papaparse很长一段时间了,但我总是失败。我想尝试加载我的本地CSV,然后给出这个papaparse?如何做到这一点?我的代码不工作。

代码语言:javascript
复制
import papa from "papaparse";
import fs from "fs";

export const convertCSV = async (res: Response) => {
  const file = await fs.createReadStream("../files/test.csv");
  papa.parse(file, {
    header: true,
    complete: function (results, file) {
      console.log("Complete", results.data.length, "records.");
    },
  });
};

results.data.length始终为0

我的CSV文件位于files文件夹中,该文件夹位于src文件夹:

代码语言:javascript
复制
src/files/test.csv
EN

回答 3

Stack Overflow用户

发布于 2020-08-31 19:53:19

Papaparse README中,它以这种方式支持节点:

当在Node.js环境中使用时(除了普通字符串之外),

Papa Parse可以解析Readable Stream而不是File。在此模式下,如果指定了encoding,则必须是节点支持的字符编码。Papa.LocalChunkSizePapa.RemoteChunkSizedownloadwithCredentialsworker配置选项不可用。Papa Parse还可以以节点流的方式进行解析,这使得.pipe可用。只需通过管道将Readable Stream传递给从Papa.parse(Papa.NODE_STREAM_INPUT, options)返回的流。Papa.LocalChunkSizePapa.RemoteChunkSizedownloadwithCredentialsworkerstepcomplete配置选项不可用。要在流中注册回调以处理数据,请使用'data'事件,如下所示:stream.on('data', callback);要发出流结束的信号,请使用'end'事件,如:stream.on('end', callback).

票数 1
EN

Stack Overflow用户

发布于 2020-08-31 19:45:54

你的代码没问题,问题出在文件路径上。fs.createReadStream需要一个绝对路径,或者一个相对于项目根目录的路径。

假设这是项目结构:

代码语言:javascript
复制
files/
  - test.csv
src/
  - convert-csv.ts
package.json
tsconfig.json

然后,您可以使用相对于根目录的路径:'./files/test.csv',或者如果您确实希望使用相对于文件的路径,则可以使用path.resolve(__dirname, '..', 'files', 'test.csv')

参见NodeJS docs for path.resolve,它将使用路径段为您解析绝对路径。

票数 0
EN

Stack Overflow用户

发布于 2021-01-26 21:46:08

正如埃里克在他们的评论中所说,the download option is not supported by Node。但是,它确实告诉我们Node接口接受ReadableStream而不是File

这对我来说很有效:

代码语言:javascript
复制
Papa.parse(fs.createReadStream("sample/result.csv"), {
    complete: function(results) {
        console.log(results["data"]);
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63669815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档