node.js - TypeError:无法读取未定义的属性“DASH”
问题描述
在我当前的项目中,我想显示一些数据(加密统计)。通过调用 API,我得到了有效的响应。
我的环境是:
节点:8.9.5,Express:4.16.4,Angular CLI:7.3.6,Typescript:3.2.4,操作系统:darwin x64
这是我的代码:
const express = require('express')
const bodyParser = require('body-parser')
const request = require('request')
const cors = require('cors')
// Create an express app
const app = express()
// Error-fix: Cross-Origin
app.use(cors())
ticker = "DASH";
// Define a default route handler for the Node app
app.get('/getDetails', (req, res) => {
let options = {
'url': 'https://api-call-something.io/',
'formData': {"access-token": "xxxxx-xxxxx-xxxxx", "ticker": ticker},
'method': "POST"
};
request(options).pipe(res);
})
这是我的回应:
回复:
{
"success": true,
"message": {
"DASH": {
"semantic_version": "0.12.3.3",
"last_block": 982197,
"block_age": 446554,
"statuses": {
"ENABLED": 4898,
"SENTINEL_PING_EXPIRED": 11,
"NEW_START_REQUIRED": 46,
"UPDATE_REQUIRED": 60,
"PRE_ENABLED": 1,
"POSE_BAN": 1
},
"usd_price": 111.50325810328,
"btc_price": "0.02107716",
"change_24h": -2.42056,
"roi": 6.77475551,
"collateral": 1000,
"payout_sum_daily": "909.11649250",
"payout_count_daily": 543,
"payout_period": 779350.464,
"daily_income": {
"coin": 0.1856,
"btc": "0.00391213",
"usd": 20.6961
}
}
}
}
当我尝试访问 usd_price 值时,出现错误:
app.get('/getDetails', (req, res) => {
let options = {
'url': 'https://api-call-something.io/',
'formData': {"access-token": "xxxxx-xxxxx-xxxxx", "ticker": ticker},
'method': "POST"
};
request(options).pipe(res);
usd = res.message['DASH'].usd_price;
console.log(usd);
console.log(res);
})
TypeError: Cannot read property 'DASH' of undefined
解决方案
使用此方法:
let message = res['message'];
let dash = Object.keys(message)[0];
let jsonObject: any = message[dash];
console.log("USD Price: " + jsonObject['usd_price']);
推荐阅读
- flutter - Flutter - 如何为 Bloc 设置双精度值?
- neo4j - 将 Neo4J 数据库从 GrapheneDB 导入到本地
- angular - skiplocationchange 浏览器向后问题。如何重定向到正确的路径
- github - 在 Jekyll GitHub 上更改 logo.svg 文件(减小像素大小似乎没有改变)
- pdf - 如何在 Erlang 中将 PDF 转换为 PDF/A?
- python - 如何使用硒单击/查找按钮
- kubernetes - 为什么 kubernetes 部署需要选择器标签?
- c - 如何在 C 中找到 printf 的源代码?
- swift - 通过 URL 方案检测哪个应用程序要打开我的应用程序
- c++ - 我是在删除一个对象,还是只是它的指针