Node.js:readfile只读一行?

时间:2014-09-17 19:40:35

标签: node.js

我正在尝试逐行解析CSV文件。 但是,当我输出文件的内容时,它只显示一行?

以下是代码:

fs.readFile('data.csv', 'utf8', function (err,data) {
    if (err) {
      return console.log(err);
    }

    console.log(data)
    var tbl = data.split('\n'); 
    console.log(tbl.length);
})

首先console.log只输出一行数据,tbl.length输出1。

为什么只读取一行而不是整个文件?

编辑:奇怪的事情发生了,如果我data.length我得到580218,这远远超过我作为输出的那一行?

1 个答案:

答案 0 :(得分:0)

想给Jonathan一个回答的机会,这样他就可以获得积分。

这里有几个问题。

  1. 仅列出CSV中的一行而不是整个数据。 原来JSON.strigify(字符串)做了伎俩。 额外的行或无效字符可能导致它只输出一行而不是整个文件。

  2. 拆分操作的array.length返回1行。后来我注意到整个csv文件是数组的[0]元素。显然与字符串中的新行有关。 所以我做了csv的串行,并改进了我的分割线,它工作。

  3. 以下是修改过的代码:

    tbl = data.replace(/(\r\n|\n|\r)/gm,"|");
            tbl = tbl.split("|")
            console.log(tbl.length);
    

    瞧!