【问题标题】:Meteor CSV file uploadMeteor CSV 文件上传
【发布时间】:2015-10-19 22:37:48
【问题描述】:

我是流星的新手,我正在制作应用程序来上传大型 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)
  }
})

【问题讨论】:

  • 您能否清理一下您的代码,使其更易于阅读?这将在堆栈溢出时为您提供更好的答案。

标签: node.js meteor


【解决方案1】:

您可以使用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;

我认为还有另一种写法,但我认为它有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    • 2012-10-21
    • 2019-07-14
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 2017-01-11
    相关资源
    最近更新 更多