Вставка внешних, реактивных данных API в коллекцию метеоров

У меня есть внешние данные, я звоню из API. Данные представляют собой объекты сообщений WordPress, которые я извлекаю через WordPress API.

Я использую пакет HTTP, и мой код выглядит следующим образом.

сервер.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 — это ответ. Один объект WordPress post выглядит в консоли следующим образом. Эти данные регулярно обновляются новыми сообщениями, и я хотел бы, чтобы коллекция Posts, в которую я загружаю эти данные, отражала это.

введите здесь описание изображения

Теперь, когда у меня есть данные, я хочу добавить эти сообщения в коллекцию под названием Posts, но у меня возникают трудности.

сервер.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,

    });
  },
});
  • Как я могу сохранить постоянно обновляемые сообщения WordPress в коллекции таким образом, чтобы они обновлялись при публикации нового сообщения в WordPress?

  • Без дублирования поста


person Shingai Munyuki    schedule 14.10.2017    source источник


Ответы (1)


Вы путаете определение методов Meteor с вызовом.

Код загрузки и сохранения статьи:

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
      }
    });
  }
});

Где-то еще:

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