【发布时间】:2015-09-30 11:12:31
【问题描述】:
我使用的是 0.11 版的 Sails,它与船长捆绑在一起用于文件上传。我需要上传至少超过 100 MB 的大文件。
现在我不希望在开始进一步处理服务器上的文件之前完成文件上传。我想在上传文件流时读取它。以下是我试图达到同样目的的方法:
var csv = require("fast-csv");
bulk: function (req, res){
function parseEntry(entry){
return entry
}
var inputStream = req.file('employees');
var csvStream = csv();
inputStream.pipe(csvStream);
csvStream.on("data", function (data){
count++
// skip invalid records
var parsedData = parseEntry(data);
console.log(parsedData);
});
csvStream.on("end", function(){
// console.log("total time taken in minutes:", timeTaken);
return res.json(200, {"status": 1, "message": "successfully uploaded the file"});
});
}
但我的日志只显示结束事件,并没有捕获任何数据事件。我在文档中读到req.file("filename")
将返回文件流流。但是由于我只上传一个文件,如何访问我需要的特定文件流?
【问题讨论】:
-
可能是因为 Skipper 用户流式传输 2,而您的 cvsStream 使用旧式流式传输
-
我也有同样的问题,您是否设法将 csv 解析为流?
-
不。我们没有达到文件大小超过几 MB 的情况。如果有一天我回到这个问题并解决它,我肯定会更新这个线程
-
终于搞定了,刚写了skipper-csv模块,请关注github.com/hammady,我会尽快推送!
标签: node.js file-upload sails.js skipper