Nightmare JS使用检索到的数据更新MongoDB + Mongoose无法正常工作

时间:2017-02-09 20:23:18

标签: node.js mongodb express mongoose nightmare

我希望从特定网址中抓取数据并更新MongoDB中的现有数据。我也在使用CRON(不确定这是否对代码有任何影响)。以下是代码:

module.exports = new CronJob('0 */59 * * * *', function() {
nightmare
    .goto('http://www.xyzxyzxyz.com/')
    .wait(2000)
    .evaluate(function() {
        var itemS = [];
        var itemList = document.querySelectorAll('.item-list');
            for(var i = 0; i < item-list.length; i++) {
                var item = {};
                item['name'] = itemList[i].querySelector('.item-title').innerHTML;
                item['image'] = itemList[i].querySelector('.item-image').src;
                itemS.push(item);
            }
        return itemS;
    })
    //.end() -- removed because CRON does not restart
    .then(function(result) {
        var id = mongoose.Types.ObjectId("589b8d8fe860591071d4e2c6");
        mongooseModel.findByIdAndUpdate(id, {$set: {key: result}}, function(err, res) {
            if(err) {
                console.log(err);
            } else {
                console.log('success!');
            }
        });
        console.log(result);
    })
    .catch(function(error) {
        console.error('Search failed:', error);
    });

},null,true);

结果是console.log(ged)(console.log(result))但是console.log(“success!”)回调没有执行。

另外,无关,当我从某些网站提取图片时,我正在获取数据网址而不是img网址。我尝试将数据URL直接放入标签中,但图像显示为空白 - 我也尝试使用在线资源解码图像,但图像仍然无法渲染。任何可能的解决方案?

非常感谢,提前!

0 个答案:

没有答案