javascript - Node JS 请求以字符串形式返回

标签 javascript node.js request

我正在使用 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/

相关文章:

javascript - 有没有办法在 javascript 中向文本节点添加属性?

javascript - 为什么不响应代理请求

javascript - 如何在刷新时保存页面元素

javascript - 有什么好的 JavaScript 货币或十进制类吗?

javascript - Pow 和 mod 函数优化

javascript - gulp.dest 与 glob gulp.src - 使其相对

javascript - 使用firebase云功能删除多个文档

java - JAVA 污染源

java - 如何在 POST 方法中传递 xml?

Python:每分钟只需要请求 20 次