gpt4 book ai didi

javascript - NodeJs使用Request Promise调用外部API,从响应体中保存数据

转载 作者:行者123 更新时间:2023-12-02 22:40:53 25 4
gpt4 key购买 nike

我目前正在使用请求 promise ,以便对 smarty Street API 进行 API 调用来进行地址验证。我目前遇到的问题只是保存返回的数据主体,以便在请求之外使用它。将请求中的 body 保存到变量 reBody 的最简单方法是什么?

我确定这是一个简单的问题,我想得太多了,所以任何帮助将不胜感激!附件是下面的代码以及响应正文本身。

代码:

var resBody = null;

request({
method: 'get',
uri: url,
headers: {
'User-Agent': 'Request-Promise'
},
json: true
})
.then(function (body) {
console.log(body);
return body
})
.catch(function (err) {
console.log(err)
});

for (i in resBody){
console.log(resBody[i].components);
}

回复:

[
{
input_index: 0,
candidate_index: 0,
delivery_line_1: '1 Campus Dr',
last_line: 'Allendale MI 49401-9401',
delivery_point_barcode: '494019401017',
components: {
primary_number: '1',
street_name: 'Campus',
street_suffix: 'Dr',
city_name: 'Allendale',
default_city_name: 'Allendale',
state_abbreviation: 'MI',
zipcode: '49401',
plus4_code: '9401',
delivery_point: '01',
delivery_point_check_digit: '7'
},
metadata: {
record_type: 'S',
zip_type: 'Standard',
county_fips: '26139',
county_name: 'Ottawa',
carrier_route: 'R099',
congressional_district: '02',
rdi: 'Commercial',
elot_sequence: '0002',
elot_sort: 'A',
latitude: 42.97192,
longitude: -85.89169,
precision: 'Zip9',
time_zone: 'Eastern',
utc_offset: -5,
dst: true
},
analysis: {
dpv_match_code: 'Y',
dpv_footnotes: 'AABB',
dpv_cmra: 'N',
dpv_vacant: 'N',
active: 'Y',
footnotes: 'N#'
}
}
]

最佳答案

您必须将 for 循环移至 then block 内。否则你可以像这样简化它:

let resBody = await request({
method: 'get',
uri: url,
headers: {
'User-Agent': 'Request-Promise'
},
json: true
});

既然这是一个 promise ,你就可以等待它。要捕获错误,您可以使用 try..catch block 。

关于javascript - NodeJs使用Request Promise调用外部API,从响应体中保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58591372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com