1

我有以下 node.js 代码:

new lazy(fs.createReadStream('file.csv'))
  .lines
  .forEach(function(line){
    console.log(line.toString());
  });

但是,我只能通过这种方式获得最后一行数据。csv文件的内容如下:

123,破碎
12345,被盗
1234567,丢失

我在这里做错了什么?

我也有同一个文件的代码:

fs.readFile(req.files.file.path, 'utf8', function (err, data) {
  if (err) throw err;
  var lines = data.split(/\r?\n/);
  console.log(lines);
});

它返回以下数组:

[ '123,broken\r12345,stolen\r1234567,lost' ]
4

1 回答 1

2

\r\n, \n, 和\r都是有效的行尾,所以你需要准备好拆分它们。

在进行拆分之前将它们全部转换为一个共同的值。就像是:

var lines = data.replace(/\r\n?/g, "\n").split("\n");
于 2013-05-25T14:54:12.207 回答