我是新手meteor我制作应用程序上传大型csv文件,当我运行应用程序文件上传到我的主目录(ubuntu)和Mongodb集合我可以看到它与robomongo,之后我收到这个 控制台上的错误(STDERR)错误:ENOENT,打开' /imports/tdcdata.csv' 我已经改变./,〜/,home / user / imports它不起作用。感谢您提前的贡献; 这是我的代码:
Meteor.methods({
'uploadFile': function(fileid, filename) {
var fs = Meteor.npmRequire('fs');
var file = Uploads.find({
_id: fileid
});
Meteor.setTimeout(function() {
var filepath = '~/imports/' + filename;
//var filepath = '/imports/uploads-' + fileid + '-' + filename;
CSV().from.stream(
fs.createReadStream(filepath), {
'escape': '\\'
})
.on('record', Meteor.bindEnvironment(function(row, index) {
Album.insert({
'Account Number': row[0],
'Album Title': row[1],
'Track Artist': row[2],
'Track Title': row[3],
'ISRC': row[4],
'Source UPC': row[5],
})
}, function(error) {
console.log(error);
}))
.on('error', function(err) {
console.log(err);
})
.on('end', function(count) {
})
}, 1000)
}
})

答案 0 :(得分:0)
您可以使用FS.debug = true
获取路径等信息。
FS.debug = true
Upload = new FS.Collection("uploads", {
stores: [new FS.Store.FileSystem("uploads")]
});
路径为var filepath = process.env.PWD + "/.meteor/local/cfs/files/uploads/uploads-" + fileid + "-" + filename;
我认为还有另一种方式来写这个,但我认为它有效。