我正在尝试使用fast-csv验证数据。我的代码看起来像这样
var fileName = req.files.uploadcsv.path;
var fs = require("fs");
var stream = fs.createReadStream(fileName);
var csv = require("fast-csv");
csv
.fromStream(stream, {
headers: true
})
.validate(function(data) {
if (data.age > 18)
return false;
else
return true;
}
}它适用于我上传的每个文件,但如果我上传包含额外数据的文件,它会显示错误:意外错误:列标题不匹配预期:5列得到:6实际上文件有5个标题,但它包含的数据集有6条记录。我想要捕捉这个错误,这样我就可以将用户指向错误。
请提个建议。
发布于 2014-11-18 18:30:07
我已经解决了。上述问题的解决方案是:
.on("error", function(data){
return false;
})我在.validate()之后实现了这段代码,它起作用了。
发布于 2020-02-28 16:27:30
以防这对将来的某些人有帮助:我遇到了同样的错误,并注意到我的一行中包含一个,--导致快速csv抛出错误,因为它认为添加了一个新列。
发布于 2016-02-01 01:22:41
你也可以这样做:
csv
.fromStream(stream, {
headers: true,
strictColumnHandling: true
})
.validate(function(data) {
if (data.age > 18)
return false;
else
return true;
}
.on("data-invalid", function(data){
// do something like log for example
});https://stackoverflow.com/questions/26975068
复制相似问题