Javascript fs.createReadStream仅读取文件node.js的最后一行

Javascript fs.createReadStream仅读取文件node.js的最后一行,javascript,node.js,file,stream,fs,Javascript,Node.js,File,Stream,Fs,嗨,我正试图简单地流式传输我的csv文件的内容,我有一些非常恼人的问题。下面是我的代码,我的沮丧情绪隐藏在我的评论中 var fileReadStream = fs.createReadStream(inFile); // For some reason readable will yield only the last line of my file // and if I listen for 'data' I still just get the last line of my file

嗨,我正试图简单地流式传输我的csv文件的内容,我有一些非常恼人的问题。下面是我的代码,我的沮丧情绪隐藏在我的评论中

var fileReadStream = fs.createReadStream(inFile);

// For some reason readable will yield only the last line of my file
// and if I listen for 'data' I still just get the last line of my file
fileReadStream.on('readable', function() {
  process.stdout.write(fileReadStream.read().toString());
}).on('end', function() {
  i ++;
  next();
});

这方面的任何帮助都会很好。另外,我对如何正确制作管道也很困惑。根据我的解释,我觉得对于管道对象,管道将简单地写入管道内的对象,然后对该对象调用read。但我还没能让管道工作得那么好。也许当我解决这个问题时,我能更容易地找出管道。谢谢。

您应该能够简单地执行以下操作:

var fileReadStream = fs.createReadStream(inFile);
fileReadStream.on('end', function() {
  i++;
  next();
}).pipe(process.stdout);

是否可能是将整个文件加载到缓冲区中,而您在输出时只看到最后一行?添加一个on-error片段以确保它没有抛出错误。此外,您可能希望了解如何使用csv库处理csv文件。