2015-04-07 2 views
0

Я использую пакет 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 (порты); У меня есть ошибка:

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

Заранее благодарен!

+0

Попробуйте использовать wrapasync, чтобы избежать в перспективе проблемы волокна. Вы найдете его в документах –

ответ

1

Thanks Eliezer! Вот мой код сейчас (не так просто для меня!):

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; 
    } 
});