0
我突然遇到了一段意外的问题,这段代码在数周内一直在正常工作。NodeJS无法读取存在的JSON属性?
在下面的请求和(部分)响应:
//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
我也有点在为什么现在发生此错误而不是早期失败。
任何帮助将不胜感激。谢谢!
UPDATE:
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',因为现在有一个错误! 似乎有人可能已更改此帐户上的密码。 – Nodal