Используйте запрос узла для получения RSS-канала

#javascript #json #angularjs #mongodb #rss

#javascript #json #angularjs #mongodb #RSS-канал

Вопрос:

В настоящее время я использую пакет запросов узла (https://github.com/mikeal/request) для получения http-контента из ссылки на обзор iTunes App Store и просмотра по ней отзывов.

Я заметил, что в iTunes есть RSS-канал, доступный для получения отзывов клиентов о приложениях, и это кажется более подходящим для использования. Как можно использовать запрос для получения данных JSON из RSS-канала (и возможного хранилища в MongoDB)? Есть ли лучшие варианты, такие как загрузка данных RSS-канала непосредственно в AngularJS?

Проблема в том, что мой localhost / appstore пытается перенаправить на программу чтения RSS-каналов. Мне просто нужно извлечь данные JSON из запроса. Вот фрагмент кода, который использует запрос.

 app.get('/appstore', function(req, res) {

  var options = {
    url: 'https://itunes.apple.com/us/rss/customerreviews/id=662900426/sortBy=mostRecent/json',
    json: true,
    headers: {
      'User-Agent': 'request'
    }
  };

  function callback(error, response, body) {
    if (!error amp;amp; response.statusCode == 200) {
      var info = JSON.parse(body);
      console.log(info);
    }
  }

  request(options, callback);

});
  

Комментарии:

1. Что возвращается из console.log (info)?

2. Возможно, вы захотите проверить node-feedparser модуль, найденный здесь . Он обрабатывает синтаксический анализ канала и дает вам более полезные результаты.

3. @MonsterWimp757 На самом деле я получаю ошибку от JSON.parse(body): SyntaxError: неожиданный вывод токена в Object.parse (native) по запросу.обратный вызов [как _callback] (/Users/John/Documents/Web… de-web-scrape/app/routes.js:22:25) по запросу.self.обратный вызов (/Users/John/Documents/Web Development/node-web-scrape/node_modules/request/ запрос.js:121:22) по запросу. EventEmitter.emit (events.js:98:17)

4. @JohnVerrone иногда это происходит, когда вы пытаетесь дважды проанализировать JSON. Эта область вашего запроса уже может гарантировать, что вы возвращаете JSON. sortBy=MostRecent/json попробуйте зарегистрировать тело и посмотрите, что вы получите.

5. Ах да. JSON: true было достаточно. Регистрируя JSON, я получаю: { канал: { автор: {имя: [Object], uri: [Object] }, запись: [[Объект], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [object], …]}}} Я пойду отсюда и проверю node-feedparser @tennisgent