如何退出异步功能?

时间:2019-07-01 09:24:10

标签: javascript node.js

我正在尝试创建一个nodeJS服务器,该服务器从各个网站检索RSS数据并将其存储在数据库中。 目前我正在做的是以下代码:

function get_last_post(callback){
    connection.query('SELECT news_url FROM news ORDER BY news_id DESC LIMIT 1;', function (error, results) {
        if (error) throw error;
        str=results[0].news_url;
        var n = str.lastIndexOf('/');
        var result = str.substring(n + 1);
        callback(result);
        });

}
get_last_post(function(data){
        console.log("lastest post ID : ",data); 

        let Parser = require('rss-parser');
        let parser = new Parser();

        (async () => {

            let feed = await parser.parseURL('https://www.exploit-db.com/rss.xml');
            feed.items.forEach(item => {
              str=item.link;
              var n = str.lastIndexOf('/');
              var result = str.substring(n + 1);

              if(result>1){
                  console.log("append"+item.link)
                  item.title=item.title.replace("'","");
                  item.link=item.link.replace("'","");
                  connection.query("INSERT INTO news (news_title,news_url) VALUES ( '"+item.title+"','"+item.link+"');")
              }

            });



        })();
});

但是,每当我执行nodeJS程序时,在遍历所有元素之后,它显然就会永远循环。

到目前为止我尝试过的事情:

  • 使用带有setTimeOut的同步功能来加载RSS页面

但是我得到这个错误:

  

TypeError:无法读取未定义的属性“ forEach”

如果有人有想法让我知道,谢谢!

0 个答案:

没有答案