我正在使用 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
});
最佳答案
我的理解是你需要提供一个额外的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
});
关于javascript - Node JS 请求以字符串形式返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51940140/