我正在使用node和请求包向api发送请求。我正在尝试分解正文,但是我注意到请求的正文以字符串形式返回。我不确定为什么要考虑在项目的其他地方使用此api,并且一切正常。关于为什么可能会发生或如何处理的任何想法(假设这不是api特有的问题)?
如果有帮助,我正在使用IEX API获取股票数据...
这是我的代码:
request('https://api.iextrading.com/1.0/tops/last?symbols=SNAP', (err, res, body) => {
if(err) {
return console.error(err);
}
const stockMoment = new StockMoment({
symbol: body.symbol,
price: body.price,
time: body.time,
});
stockMoment.save((err) => {
if(err) return handleError(err);
console.log('Saved!');
});
console.log(typeof body); // Tells me it's a string
});
答案 0 :(得分:2)
我的理解是,您需要提供一个附加的json
参数request()
,以便将响应从JSON字符串自动解析为等效的JSON对象。
类似这样的事情应该可以解决:
request({
url : 'https://api.iextrading.com/1.0/tops/last?symbols=SNAP',
// [ADD] parameter json : true
json : true
}, (err, res, body) => {
if(err) {
return console.error(err);
}
const stockMoment = new StockMoment({
symbol: body.symbol,
price: body.price,
time: body.time,
});
stockMoment.save((err) => {
if(err) return handleError(err);
console.log('Saved!');
});
console.log(typeof body); // Tells me it's a string
});