MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

AVVISO Errore:il codice Meteor deve sempre essere eseguito all'interno di una fibra quando si chiama il metodo sul server

penso che dovresti avvolgere le tue callback con Meteor.bindEnvironment piuttosto che utilizzare direttamente le fibre - vedi qui https://gist.github.com/possibilities/3443021

lo uso abbastanza ampiamente e funziona bene perché rimani all'interno della fibra piuttosto che uscire e dover rientrare

stile di richiamata normale

someMethod({OPTIONS}, function(callbackReturnArgs){
    //this is the normal callback
));

richiamata con wrapping dell'ambiente bind

someMethod({OPTIONS}, Meteor.bindEnvironment(
  function(callbackReturnArgs){
    //this is the normal callback
  },
  function(e){
    console.log('bind failure');
  }
));

se esegui costantemente il wrapping dei callback asincroni in questo modo, meteor è sempre accessibile

per questo pezzo qui

Fiber(function(){
  Meteor.call('streamTwit', twit);
}).run();

non è necessario avvolgerlo in fibra, sei già nel Meteor.startup contesto, quindi è ridondante:solo Meteor.call(...); farà il trucco