MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

AVERTISSEMENT Erreur :Le code Meteor doit toujours s'exécuter dans une fibre lors de l'appel de la méthode sur le serveur

je pense que vous devriez envelopper vos rappels avec Meteor.bindEnvironment plutôt que d'utiliser des fibres directement - voir ici https://gist.github.com/possibilities/3443021

je l'utilise assez largement et cela fonctionne bien parce que vous restez dans la fibre plutôt que de partir et d'avoir à rentrer

style de rappel normal

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

rappel encapsulé dans l'environnement de liaison

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

si vous encapsulez systématiquement des rappels asynchrones comme celui-ci, météore est toujours accessible

pour ce morceau ici

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

vous n'avez pas besoin d'envelopper cela en fibre, vous êtes déjà dans le Meteor.startup contexte, donc c'est redondant - juste le Meteor.call(...); fera l'affaire