Использование node-csv и meteor-file для импорта CSV в коллекцию

Уже несколько часов пытаюсь импортировать CSV, загруженный с клиента с помощьюМетеор-файл и конвертируется в CSV с помощьюУзел-CSV на стороне сервера. Мне нужно заполнить мою коллекцию данными из CSV-файла, загруженного пользователем.

/server/filehandler.js:

Meteor.methods({
'uploadFile': function (file) {

  if(file.start === 0) {
    console.log(file.name);
    console.log(file.type);
    console.log(file.size);            
  }

  file.save('/home/russell/tmp',{});
  var buffer = new Buffer(file.data);
  CSV().from(
          buffer.toString(),
          {comment: '#', delimiter: ',', quote: ''} 
      )
        .to.array( function(data){
          //console.log(data);

          for(var row=0; row<data.length; row++) {
              console.log(data[row]);
             newRecord = {
                  'firstname': data[row][0],
                  'lastname': data[row][1],
                  'email': data[row][2],
                  'emailshort': data[row][3],
                  'emailmain': data[row][4],
                  'domain': data[row][5]
              };
              console.log(newRecord);
              reas.insert(newRecord); // *** _dynamic_meteor ERROR here!
          }
        } );

 } // uploadFile
});

Console.log говорит мне, что преобразование CSV в массив в порядке.

КоллекцияРиз настроен как коллекция в /lib/models.js - / lib находится на том же уровне, что и / server & / client.

Я попытался использовать глобальную переменную вне Meteor.method () и сохранить результат преобразования в нее, и я также попытался использовать Session.set (), но я просто не могу получить результаты конвертации, вне метода ().

Благодарю.

ОБНОВЛЕНО - 2013-10-11

Мой /libs/models.js выглядит так:

reas = new Meteor.Collection("RegisteredEmailAddresses");

/*checks to see if the current user making the request to update is the admin user */
function adminUser(userId) {
    var adminUser = Meteor.users.findOne({username:"admin"});
                return (userId && adminUser && userId === adminUser._id);
            }

reas.allow({
    insert: function(userId, doc){
                        return adminUser(userId);
                    },
    update: function(userId, docs, fields, modifier){
                        return adminUser(userId);
                    },
    remove: function (userId, docs){
                        return adminUser(userId);
                    }
});

Эврика Момент ?!

Разве это не должно быть/ Lib не / libs? Может быть, реас не определяется во времени?

Обновлено 2013-10-09

Если я уйду в очередь

reas.insert(newRecord);

Я получаю сообщение об ошибке ниже. Если я удалю эту строку, я не буду.

Сообщение об ошибке:

W2036-20:56:29.463(1)? (STDERR) packages/mongo-livedata.js:1862
W2036-20:56:29.471(1)? (STDERR)         throw e;                                                              
W2036-20:56:29.475(1)? (STDERR)               ^
W2036-20:56:29.953(1)? (STDERR) Error: Meteor code must always run within a Fiber. Try wrapping callbacks that you pass to non-Meteor libraries with Meteor.bindEnvironment.
W2036-20:56:29.958(1)? (STDERR)     at Object.Meteor.bindEnvironment (packages/meteor/dynamics_nodejs.js:60)
W2036-20:56:29.958(1)? (STDERR)     at null.<anonymous> (packages/meteor/helpers.js:108)
W2036-20:56:29.959(1)? (STDERR)     at MongoConnection.(anonymous function) [as insert] (packages/mongo-livedata/mongo_driver.js:491)
W2036-20:56:29.964(1)? (STDERR)     at Meteor.Collection.(anonymous function) [as insert] (packages/mongo-livedata/collection.js:448)
W2036-20:56:29.965(1)? (STDERR)     at app/server/server.js:37:20
W2036-20:56:29.966(1)? (STDERR)     at null.<anonymous> (/home/russell/.meteorite/packages/node-csv-npm/Dsyko/meteor-node-csv/01be0e3e834a4f033121cb3fcc92c2697741170d/.build/npm/node_modules/csv/lib/to.js:274:14)
W2036-20:56:29.967(1)? (STDERR)     at EventEmitter.emit (events.js:95:17)
W2036-20:56:29.971(1)? (STDERR)     at null.<anonymous> (/home/russell/.meteorite/packages/node-csv-npm/Dsyko/meteor-node-csv/01be0e3e834a4f033121cb3fcc92c2697741170d/.build/npm/node_modules/csv/lib/index.js:214:17)
W2036-20:56:29.972(1)? (STDERR)     at EventEmitter.emit (events.js:92:17)
W2036-20:56:29.975(1)? (STDERR)     at Transformer.end (/home/russell/.meteorite/packages/node-csv-npm/Dsyko/meteor-node-csv/01be0e3e834a4f033121cb3fcc92c2697741170d/.build/npm/node_modules/csv/lib/transformer.js:241:17)

Ответы на вопрос(2)

Ваш ответ на вопрос