【问题标题】:Get Data from CSV File in nodejs从nodejs中的CSV文件获取数据
【发布时间】:2014-01-02 22:47:10
【问题描述】:

我有一个包含大约 10k 条记录的 csv 文件。我需要在我的 nodejs 应用程序中一一检索它。

当用户第一次单击“X”按钮时,异步请求被发送到 nodejs 应用程序,该应用程序从 CSV 文件的第一行获取数据。当他再次点击时,它会显示第二行的数据并继续显示。

我尝试使用 fast-csv 和lazy,但它们都读取了完整的文件。他们是我可以实现的方式吗?

【问题讨论】:

  • 有一个plugin
  • @adeneo .. 没有任何外部插件就没有办法吗?

标签: node.js csv express fs


【解决方案1】:

Node 的核心带有一个readline 模块,允许您逐行处理可读流。

var fs = require("fs"),
    readline = require("readline");

var file = "something.csv";

var rl = readline.createInterface({
    input: fs.createReadStream(file),
    output: null,
    terminal: false
})

rl.on("line", function(line) {
    console.log("Got line: " + line);
});

rl.on("close", function() {
    console.log("All data processed.");
});

【讨论】:

  • rl.on("line") 逐行读取完整的文件。一旦我们收到客户端的请求,我需要读取每一行
  • 所以你想在收到HTTP请求什么的时候逐行读取文件?我想我错过了你想说的。想用一个例子更新你的问题吗?
【解决方案2】:

我认为 dominic tarr 的模块“拆分”就足够了。 它逐行分解流。 https://npmjs.org/package/split

fs.createReadStream(file)
    .pipe(split())
    .on('data', function (line) {
      //each chunk now is a seperate line!
    })

【讨论】:

    猜你喜欢
    • 2013-05-12
    • 2019-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    相关资源
    最近更新 更多