Meteor CSV文件上传

时间:2015-06-25 15:01:56

标签: node.js meteor

我是新手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)
  }
})




1 个答案:

答案 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;

我认为还有另一种方式来写这个,但我认为它有效。