全局变量是否适用于Heroku应用程序

时间:2017-02-21 04:06:47

标签: node.js express heroku request cheerio

我有一个应用程序从网站上刮擦并显示在我的网站上。它在本地工作正常,但在heroku上,它不起作用。我想知道它是否可能与我的控制器/路由文件中定义的全局数组有关。我正在使用'请求'和'cheerio'来刮擦。一旦我获得了数据,我将对象存储到我的空全局数组中,然后重定向回我的主页,在那里我创建另一个对象来保存被抓取的文章数组,然后将其显示在我的把手上。

var scrapeResults = [];

router.get('/', function(req, res){
    res.redirect('/home');
});

router.get('/home', function(req, res){
    if(scrapeResults.length > 0){

        var stuff = {
            moreStuff: scrapeResults,
            arrLength: scrapeResults.length,
            finishScrape: true

        }
        res.render('home', stuff)
    }else{
        res.render('home');
    }
});

router.get('/scrape', function(req, response){

    request('http://www.gamespot.com/', function(err, res, html){

        var $ = cheerio.load(html);
        var articleCounter = 1;

        $('article a').each(function(i, element){

            var articleID = articleCounter;
            var title = $(this).attr('data-event-title');
            var link = $(this).attr('href');
            var img = $(this).children('figure').children('div.media-img').children('img').attr('src');
            var description = $(this).children('div.media-body').children('p.media-deck').text();

            scrapeResults.push({
                articleID: articleID,
                title: title,
                link: link,
                img: img,
                description: description
            });

            articleCounter++;

        });
    response.redirect('/home')
    });


});

0 个答案:

没有答案
相关问题