从特快专递方法致电骑士

时间:2019-02-14 13:53:42

标签: node.js phantomjs node-horseman

我在Fiis.js上有一个使用Express的POST方法,如下所示:

var router = express.Router();
var Fii = require(libs + 'model/fii').FiiSch;
var Scrapper = require(libs + 'db/scrapper.js');

// Create One Fii
router.post('/', passport.authenticate('bearer', { session: false }), function (req, res) {

    var fii = new Fii({
        ticker: req.body.ticker,
        proventos: []
    });


    fii.save(function (err) {
        if (!err) {
            log.info('New fii created with ticker: %s', fii.ticker);

            fii.proventos = Scrapper.getFiiDetail(fii.ticker)

            return res.json({
                status: 'OK',
                fii: fii
            });
        }
    });
});

在另一个名为Scrapper.js的文件中,我有骑马员呼叫

function getFiiDetail(ticker){
    var result = []

    horseman
    .open('http://www.scanfii.com.br/raio-x/' + ticker + '/proventos')
    .wait(randomInt)
    .status()
    .evaluate(function(){

        var descNode = document.querySelectorAll('.table-hover th')
        var desc = Array.prototype.map.call(descNode, function (t) { return t.textContent })

        var valueNode = document.querySelectorAll('.table-hover td')
        var value = Array.prototype.map.call(valueNode, function (t) { return t.textContent })

        var finalData = [];

        for (var i = 0 ; i < value.length; i++) {
            if (i % 10 != 0)
                continue;

            var item = {};

            item[desc[0]] = value[i];
            item[desc[1]] = value[i+1];
            item[desc[2]] = value[i+2];
            item[desc[3]] = value[i+3];
            item[desc[4]] = value[i+4];
            item[desc[5]] = value[i+5];
            item[desc[6]] = value[i+6];

            finalData.push(item)
        }
        return finalData;
    })
    .then(function(finalData){
        var proventos = [];
        for (var i = 0 ; i < finalData.length; i++) {  
            var provento = new Fii.ProventoSch({
                dataBase: finalData[i]["Data Base"],
                dataPagamento: finalData[i]["Data Pgmto"],
                dataEx: finalData[i]["Data-ex"],
                mesRef: finalData[i]["Mês de Referência"],
                vlRendimento: finalData[i]["Rendimento"]
            });

            proventos.push(provento);
        }

        result = proventos;
    })
    .catch(function(err){
        //log.info(err)
    })
    .close();

    return result;
}

module.exports.getFiiDetail = getFiiDetail;

我的问题是,在Post方法上调用getFiiDetail方法时,什么都没有发生,一个console.log也不被放置,以查看其是否进入该方法。

我已经尝试从此函数中获取返回值,对其进行记录,检查数据库,但似乎骑手被忽略了。

0 个答案:

没有答案