【问题标题】:Problem with passing parameters from body-parser to Get JSON data从 body-parser 传递参数以获取 JSON 数据的问题
【发布时间】:2021-01-23 07:59:53
【问题描述】:

这是一个使用 api 和参数获取 BTC 价格的简单代码。 当我尝试这段代码时,我得到了未定义,但如果我替换了“data.rates.crypto;”通过“data.rates.BTC”我得到一个 尽管加密货币的价值,但当前价格的价值是相同的“BTC”

app.post("/", function(req, res) {
  var crypto = req.body.crypto; //this line gives BTC
  var baseUrl = "http://api.coinlayer.com/api/live?access_key=lablabalab&symbols=";
  var finalUrl = baseUrl + crypto; //no problem here by passing the parameter whics is BTC
  request(finalUrl, function(error, response, body) {
    var data = JSON.parse(body);
    var price = data.rates.crypto;  //here is the problem
    res.write("<h1>Cuurent Price From " + crypto + " To USD is " + price + "</h1>");
    res.send();
  });

【问题讨论】:

    标签: node.js json api


    【解决方案1】:

    响应负载如下所示:

    {"success":true,"terms":"https:\/\/coinlayer.com\/terms","privacy":"https:\/\/coinlayer.com\/privacy",
    "timestamp":1611389888,
    "target":"USD",
    "rates":{"BTC":32728.891547}}
    

    因此您需要访问data.rates,但访问的是crypto 变量(BTC)的值,而不是名称crypto。您可以通过哈希访问来做到这一点:

    var price = data.rates[crypto];  
    

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 2018-03-05
      • 2020-03-31
      • 2021-03-07
      • 2015-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多