【发布时间】:2016-12-26 02:53:34
【问题描述】:
我的一段代码突然出现了一个意外问题,该代码已经正常工作了数周。
在以下请求和(部分)响应中:
//request
let campaignRes = request('POST', reqUrl, campaignOptions);
//body of response
{"type":"Buffer","data":[ //some integer values ]}
您可以看到“数据”字段明显存在,并且我已经可以通过以下方式访问它几个星期了:
console.log(JSON.stringify(campaignRes.body));
let campaignData = JSON.parse(campaignRes.getBody('utf8')).body.data;
但是,这现在会产生错误:
TypeError: Cannot read property 'data' of undefined
at Object.MongoClient.connect.MongoClient.connect [as generateReport] (/mtpath/reports.js:31:68)
at Object.<anonymous> (/mypath/test.js:7:22)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:146:18)
at node.js:404:3
我有点不明白为什么这个错误现在发生而不是更早发生。
任何帮助将不胜感激。谢谢!
更新:
let campaignData = campaignRes.body.data;
没有比这更好的了。
【问题讨论】:
-
向我们展示
campaignRes.getBody('utf8')的值。为什么你认为结果包含body?此外,您应该始终检查JSON.parse返回的值。试试这个:var parsedJson = JSON.parse(campaignRes.getBody('utf8')); console.log(parsedJson ? parsedJson.data : '(failed to parse JSON)'); -
谢谢!你说的很对,以前和现在的区别是没有
body,因为现在有错误!似乎有人更改了此帐户的密码。
标签: json node.js express request undefined