#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