我在我的应用中使用了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. " +
提前致谢!
答案 0 :(得分:1)
谢谢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;
}
});