2017-01-10 8 views
0

Я создал оповещение в оповещениях Google и должен проанализировать XML. Я использую feed-reader модуль и мой код выглядит следующим образом:Итерация по JSON приводит только к последнему результату

app.get('/', (req, res) => { 
    parse(url).then((rss) => { 
    let title, 
     link, 
     publishedDate, 
     contentSnippet = ''; 
    let json = {}; 

    rss['entries'].forEach((item) => { 
     title = item.title; 
     link = item.link.substring(42, item.link.indexOf('&ct=')); 
     publishedDate = item.publishedDate; 
     contentSnippet = item.contentSnippet; 
    }); 

    json = { 
     title, 
     link, 
     publishedDate, 
     contentSnippet 
    }; 

    res.send(beautify(json, null, 2, 100)); 
    }).catch((err) => { 
    res.send(err); 
    }); 
}); 

Я хочу, чтобы петля над тем, что внутри ключа "entries". Хотя он работает, результат остается только последним.

Кроме того, если я перемещаю переменную json, то возвращается результат [object Object], хотя с правильной длиной.

Я пробовал JSON.stringify, без разницы.

+0

console.log json object before res.send и вставьте его здесь –

ответ

1

Это выражение присвоить значение последнего entrie к переменным:

rss['entries'].forEach((item) => { 
    title = item.title; 
    link = item.link.substring(42, item.link.indexOf('&ct=')); 
    publishedDate = item.publishedDate; 
    contentSnippet = item.contentSnippet; 
}); 

Затем вы создаете json из последних значений.

Вместо этого Array#map записи в новый массив. Каждая итерация должна возвращать объект.

+0

Это сработало. Огромное спасибо. – mfgabriel92