Вызов Всадника из экспресс-почты - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть метод POST с использованием Express на Fiis.js, например:

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 У меня есть вызов Horseman

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;

Мой вопросТо есть, при вызове метода getFiiDetail для метода Post ничего не происходит, ни какой-либо console.log, который помещается путом, чтобы увидеть, входит ли он в метод или нет.

Я уже пытался получить возврат от этой функции, зарегистрировать ее, проверить базу данных, но кажется, что всадник просто игнорируется.

...