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 に答える