即使没有错误Node JS,我的代码也不会继续进行下一步

时间:2018-12-15 23:58:53

标签: node.js

我最近一直在尝试使用Node JS,由于某种原因,即使应该这样做,我的代码也不会继续进行下一步。

这是我的代码:

const request = require('request');
var jssoup = require('jssoup').default;
const {Harvester} = require('captcha-manager');

const harvester = new Harvester();
async function run(){
//                                               hostname      sitekey
    global.response = await harvester.getResponse('adidas.com', '6LdC0iQUAAAAAOYmRv34KSLDe-7DmQrUSYJH8eB_');
    console.log(response);
}

async function normalCheckout(size, style){
    console.log('started');


    if (size == 14.5){
        var shoesize = style + '_740';
    }

    if (size == 15){
        var shoesize = style + '_750';
    }

    if (size == 15.5){
        var shoesize = style + '_760';
    }

    if (size == 16){
        var shoesize = style + '_770'
    }
    console.log(shoesize);
    var options = {
        url: 'https://www.adidas.com/us/optik_literally_takes_stock/' + style +'.html',
        headers: {
                'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'
            },
        form: {
            "product_id":style,
            "quantity":1,
            "product_variation_sku":shoesize,
            "productId":shoesize,
            "size":str(size),
            "displaySize":str(size),
            "captchaResponse":response
        },
    };
    console.log('step finished');
    run();
}

normalCheckout(16, 'BD7730')

注意:form的字典在我的实际代码中的格式正确,由于某种原因,我在这里无法正确设置其格式。

当我运行它时,会记录started并记录变量shoesize,但step finished不会记录,即使应该记录。为什么会发生这种情况,我该如何解决?另外,我有什么办法可以压缩我所有的if语句?

2 个答案:

答案 0 :(得分:1)

关于鞋子的尺码映射-我将使用一个对象对其进行映射:

const shoeSizeMap = {
 4:'_730', 
 4.5: '_540', 
 //etc
}

const shoesize = style + shoeSizeMap[size]; 

为什么它不继续-您确定没有收到错误消息?

例如,我看不到在任何地方定义了str方法。

答案 1 :(得分:1)

options变量的分配被卡住了,因为它将response作为值分配给其元素之一,但是该变量尚不存在(它仅在以后由run()函数。

为什么不抛出错误尚不清楚。