【发布时间】:2015-07-21 17:50:14
【问题描述】:
我有一个 Meteor 应用程序,我想在其中上传一个文本文件,然后在服务器上解析该文件。我正在使用cfs:gridfs(当然是cfs:standard-package)将文件存储在服务器上。
客户端代码:
Template.uploadPathway.events({
"submit #upload-pathway": function (event) {
event.preventDefault(); // prevent default browser form submit
var pathwayFile = event.target.pathwayFile.files[0];
UploadedFiles.insert(pathwayFile, function(error, fileObject) {
// error handling removed for brevity
Meteor.call("parseFile", fileObject._id);
});
}
});
服务器代码(在服务器文件夹中,而不是 Meteor.isServer):
Meteor.methods({
parseFile: function (fileId) {
var theFile = UploadedFiles.findOne({ _id: fileId });
console.log(theFile);
// how do I parse this file??
}
});
上面的代码效果很好,但我不知道如何读取 FS.File 中的数据
【问题讨论】:
-
您可以使用
theFile.createReadStream()来读取文件。一旦你有了它,你可以搜索堆栈溢出,了解如何在给定流的情况下逐行读取文本文件,例如stackoverflow.com/questions/6156501/…。 -
@ChristianFritz:问题是
theFile.createReadStream()会崩溃,因为文件还没有完成保存。 (请参阅下面的答案。)
标签: javascript meteor gridfs