2017-10-14 4 views
0

J'ai quelques données externes J'appelle d'un API. Les données sont des objets WordPress messages que je vais chercher via le WordPress API. J'utilise le package HTTP et mon code ressemble à ceci.Insertion de données API externes, réactives dans une collection Meteor

server.js

const articleIncoming = HTTP.call('GET', 'http://myUrl/wp-json/wp/v2/posts', {}, function(error, articleIncoming) { 
    if (error) { 
    console.log(error); 
    } else { 
    console.log(articleIncoming); 
}); 

articleComing est la réponse. Un objet WordPress post ressemble à ceci dans la console. Ces données mises à jour avec de nouveaux messages sur une base régulière et je voudrais la collection Posts, dans laquelle je charge ces données, pour refléter cela.

enter image description here

Maintenant que j'ai mes données, je veux ajouter ces messages à une collection appelée Posts mais je vais avoir du mal.

server.js

const articleIncoming = HTTP.call('GET', 'http://myUrl/wp-json/wp/v2/posts', {}, function(error, articleIncoming) { 
    if (error) { 
    console.log(error); 
    } else { 
    console.log(articleIncoming); 
}); 

Meteor.methods({ 
    'Posts.insert'(articleIncoming) { 
    return Posts.insert({ 
     articleIncoming, 

    }); 
    }, 
}); 
  • Comment puis-je enregistrer la mise à jour en permanence messages WordPress dans la collection , d'une manière qui les mises à jour lorsqu'un nouveau message est publié dans WordPress?

  • Sans double emploi après

Répondre

0

Vous confondez les méthodes Meteor définition avec l'appel.

article & enregistrer le code d'extraction:

HTTP.get('http://myUrl/wp-json/wp/v2/posts', (error, articleIncoming) => { 
    if (error) { 
    console.log(error); 
    } else { 
    Meteor.call('Posts.insert', articleIncoming, (err, postId) => { 
     if (err) { 
     // handle error 
     } 
    }); 
    } 
}); 

Ailleurs:

Meteor.methods({ 
    'Posts.insert'(articleIncoming) { 
    // prevent duplications, based in article's `id` field 
    const _id = `article_${articleIncoming.id}`; 
    return Posts.upsert({ _id }, articleIncoming); 
    }, 
});