Занимавам се тия дни с nodejs и еxpressjs.
Но нещо не ми се получава, и въобще не ми харесва кода който генерирам (дано грешката е в мен).
Първо тия mysql заявки връщат абсурдни глупости и виждате какви гимнастики се правят за да се вземе резултата. Ползвам пакета mysql2.
Второ изведнъж спря да ми работи кода в loop-а където се мъча да обработя фийда, feed_map е JSON където съм задал кое поле от фийда къде да бъде добавено.
key променливата вместо да е различна за всеки item връща
Но нещо не ми се получава, и въобще не ми харесва кода който генерирам (дано грешката е в мен).
Първо тия mysql заявки връщат абсурдни глупости и виждате какви гимнастики се правят за да се вземе резултата. Ползвам пакета mysql2.
Второ изведнъж спря да ми работи кода в loop-а където се мъча да обработя фийда, feed_map е JSON където съм задал кое поле от фийда къде да бъде добавено.
key променливата вместо да е различна за всеки item връща
Код:
--------------------------------
guid
guid
guid
guid
guid
guid
guid
guid
guid
guid
guid
guid
--------------------------------
isoDate
isoDate
isoDate
isoDate
isoDate
isoDate
isoDate
isoDate
isoDate
isoDate
isoDate
isoDate
--------------------------------
GET /cron/fetch-rss 201 260.399 ms - 2
JavaScript:
async fetchLast() {
let sql = `SELECT t1.rss_url as url, t2.feed_map as map, t1.id as ID FROM rss_feeds as t1 LEFT JOIN rss_map as t2 ON t1.id = t2.rss_id WHERE t1.status = 1 ORDER BY t1.last_fetch ASC LIMIT 1`;
let [row, _] = await db.query(sql);
let rss_url = row[0].url;
let feed_map = JSON.parse(row[0].map);
let rss_id = row[0].ID;
var last_fetch = this.formatDate(new Date());
let sqlUpdate = `UPDATE rss_feeds SET last_fetch = '${last_fetch}' WHERE id = ${rss_id}`;
await db.query(sqlUpdate);
let parser = new Parser();
let feed = await parser.parseURL(rss_url);
feed.items.forEach(item => {
var news = {
news_title: '',
news_content: '',
date_created: '',
news_image: '',
news_url: ''
};
Object.keys(item).forEach(key => {
for(var j in feed_map) {
console.log(key);
if(key == feed_map[j].key) {
news[feed_map[j].type.toString()] = (key == 'enclosure') ? item[key].url.toString() : item[key].toString();
}
}
console.log('--------------------------------');
});
this.storeNews(news);
});
}
Последно редактирано: