节点js在解析使用fast-csv libary的csv文件时遇到问题

时间:2016-05-03 15:27:07

标签: node.js csv

我正在使用fast-csv节点库来解析看起来像这样的csv文件

var stream = fs.createReadStream('./tmp_dir/'+files.fileUploaded.name);

var csvStream = csv()
    .on("data", function(data){
         console.log(data);
    })
    .on("end", function(){
         console.log("done");
    });

stream.pipe(csvStream);

我想知道是否可以做以下事情

  • 要查看csv文件中无法解析的行数?
  • 记录解析文件的开始和结束时间?

2 个答案:

答案 0 :(得分:0)

<强> 1

  

要查看csv文件中有多少行无法解析?

docs中,提到当遇到无效的行数据时会发出事件data-invalid我不确定但是也许你可以使用它。

var csvStream = csv()
  .on("data-invalid", function(data){
     // handle the erroneous data
  })
  .on("data", function(data){
     console.log(data);
  })
  .on("end", function(){
     console.log("done");
  });

<强> 2

  

记录解析文件的开始和结束时间?

你可以试试这个:

var startTime = (new Date()).getTime();

var csvStream = csv()
  .on("end", function(){
     console.log("done");

     var endTime = (new Date()).getTime();

     console.log("Time taken : ", (endTime - startTime));

  });

答案 1 :(得分:0)

您将链接发送到库github,但您没有阅读文档!

一切都在这里!

(function() {
    'use strict';

    angular.module('application').controller('MeetingRoomsCtrl', ['$scope', '$timeout', 'facilities', 'items', '$state', '$window',
        function($scope, $timeout, facilities, items, $state, $window, foundation, ModalFactory, NotificationFactory) {
            // controller code ...
        }
    ])
    .directive('scroll', function($window, $document, $timeout) {
        return function(scope, element, attrs) {
            var grid_content = document.querySelectorAll('.grid-content')[0];
            var stickyFunction = function() {
                // doing stuffs ...
                scope.$apply();
            };
            angular.element(grid_content).bind("scroll", stickyFunction);
        };
    });
})();

对于时间,您可以在读取第一行时获取日期(使用计数器或在读取后设置为false的切换isFirstLine)以及当您点击完成事件时,您将有时间。< / p>