2013-08-23 3 views
0

J'ai eu le code qui a fait un appel get HTTP du serveur, utilisé EJSON.parse pour analyser ces données de l'URL (initialement au format JSON), puis ajouté des informations à partir des données analysées à un Meteor collection. Cela a fonctionné correctement, mais quelque temps après la mise à jour de Meteor 0.6.5, le code a cessé de fonctionner. Dans mon code, je supprime tous les membres de la collection au démarrage du serveur avant d'effectuer l'appel HTTP et de l'insérer dans la collection. J'ai remarqué quelque chose de bizarre en regardant les choses dans la console: la collection contient des informations qui ne sont plus là. J'ai depuis supprimé le code qui a fait l'appel HTTP et l'insertion dans la collection, mais il y a encore des objets dans la collection. En fait, il y a des objets dans la collection qui contiennent des informations de l'url qui datent de la veille et ne sont plus à l'url. Comment se peut-il?Meteor Collection contient des informations obsolètes

EDIT: Voici une partie du code avec l'appel HTTP:

Halls = new Meteor.Collection("halls"); 

...

if (Meteor.is_server) { 
    Meteor.startup(function() { 
     Halls.remove({}); 

     var result = HTTP.call("GET", "http://claremontcollegemenus.appspot.com/json"); 
     var parsedData = EJSON.parse(result.content); 

     for (date in parsedData.dates) { 
      if (parsedData.dates[date].date == today) { // Check for today's date 
       for (var menu in parsedData.dates[date].menus){ 
        Halls.insert({name: parsedData.dates[date].menus[menu].name, meals: parsedData.dates[0].menus[menu].meals, date: parsedData.dates[date].date}); 
       } 
      } 
     } 
    }); 
} 

En outre, je commenté if (Meteor.is_server) { (ce qui provoque une erreur), puis décommentée il, et maintenant rien n'est dans la collection.

+1

Salut, bienvenue à SO. Pouvez-vous s'il vous plaît poster un code? –

+0

Peut-être que le transfert de données d'un autre endroit. – Denis

+0

Je viens d'ajouter du code à mon message. Que signifie le transfert de données d'un autre endroit? – Ethan

Répondre

0

Avez-vous des erreurs à propos de EJSON étant indéfini? La version 0.6.5 a nécessité l'ajout explicite de toutes les dépendances de paquet.

Essayez meteor add ejson dans votre dossier de projet et dites-nous ce que vous obtenez.

+0

Je l'ai déjà ajouté – Ethan

+0

Donner plus d'informations, comme je l'ai déjà dit, rechercher des messages d'erreur ou afficher un code minimal qui montre votre cas. – imslavko

+0

Je viens de faire le "test" suivant: J'ai ajouté 'Halls.insert ({name: 'hello'});' dans 'if (Meteor.is_server)', redémarré le serveur, puis recherché 'Halls.findOne ({ nom: 'bonjour'}) 'dans la console Javascript sur Chrome, où j'utilisais mon application en local. La recherche est retournée indéfinie. J'ai ensuite ajouté 'Halls.insert ({name: 'hello'});' dans 'if (Meteor.isClient)', puis j'ai recherché 'Halls.findOne ({name: 'hello'})', qui renvoyait un objet. J'ai ensuite supprimé les deux instances de 'Halls.insert ({name: 'hello'});' et redémarré le serveur; l'objet apparaît toujours lorsque je recherche sur la console. – Ethan

Questions connexes