Сохранить список последовательных портов с метеором

Я использую пакет serialport в своем приложении (https://github.com/voodootikigod/node-serialport). Этот код просто отлично работает на сервере:

Meteor.startup(function () {
  SerialPort = Meteor.npmRequire('serialport');
});


Meteor.methods({
  serialPortsRefresh: function () {

    SerialPort.list(function (err, ports) {


      ports.forEach(function(port) {
        console.log(port.comName);
      }); 
// Config.insert(ports);
      return ports;
    });  

  }
});

Теперь я хочу сохранить этот список в коллекции, чтобы предоставить его клиенту. Какое лучшее решение?

Когда я раскомментирую Config.insert(ports); у меня ошибка:

throw new Error("Meteor code must always run within a Fiber. " +  

Заранее спасибо !


person tedour    schedule 07.04.2015    source источник
comment
Попробуйте использовать wrapasync, чтобы избежать проблем с волокном. Вы найдете его в документах   -  person Eliezer Steinbock    schedule 07.04.2015


Ответы (1)


Спасибо Элиэзер! Вот мой код сейчас (для меня это не так просто!):

Meteor.startup(function () {
  SerialPort = Meteor.npmRequire('serialport');
  listSerialPorts = function(callback) {
    SerialPort.list(function (err, ports) {
      callback(null, ports);
    });  
  }
});


Meteor.methods({
  serialPortsRefresh: function () {
    var ports = Meteor.wrapAsync(listSerialPorts);
    var result = ports();
    debugger;
  }
});
person tedour    schedule 07.04.2015