我最近一直在尝试使用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
语句?
答案 0 :(得分:1)
关于鞋子的尺码映射-我将使用一个对象对其进行映射:
const shoeSizeMap = {
4:'_730',
4.5: '_540',
//etc
}
const shoesize = style + shoeSizeMap[size];
为什么它不继续-您确定没有收到错误消息?
例如,我看不到在任何地方定义了str
方法。
答案 1 :(得分:1)
options
变量的分配被卡住了,因为它将response
作为值分配给其元素之一,但是该变量尚不存在(它仅在以后由run()
函数。
为什么不抛出错误尚不清楚。