2016-12-26 1 views
0

Ich habe plötzlich ein unerwartetes Problem mit einem Code, der seit Wochen korrekt funktioniert.NodeJS kann die Eigenschaft von JSON nicht lesen, die existiert?

In der folgenden Anforderung und (zum Teil) die Antwort:

//request 
let campaignRes = request('POST', reqUrl, campaignOptions); 

//body of response 
{"type":"Buffer","data":[ //some integer values ]} 

Sie können sehen, dass die „Daten“ Feld eindeutig vorhanden ist, und ich konnte es auf folgende Weise für mehrere Wochen zugreifen jetzt:

console.log(JSON.stringify(campaignRes.body)); 
let campaignData = JSON.parse(campaignRes.getBody('utf8')).body.data; 

dies ist jedoch jetzt her mit den Fehler:

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 

ich bin ein wenig an ein Verlust an, warum dieser Fehler jetzt und nicht früher auftritt.

Jede Hilfe würde sehr geschätzt werden. Vielen Dank!

UPDATE:

let campaignData = campaignRes.body.data; 

nicht besser ergehen.

+1

Zeigen Sie uns den Wert von 'campaignRes.getBody ('utf8')'. Warum denkst du, dass das Ergebnis "Körper" enthält? Außerdem sollten Sie immer den von 'JSON.parse' zurückgegebenen Wert überprüfen. Versuchen Sie Folgendes: 'var parsedJson = JSON.parse (campaignRes.getBody ('utf8')); console.log (parsedJson? parsedJson.data: '(konnte JSON nicht parsen)'; ' –

+0

Danke! Du hast genau das Richtige, der Unterschied zwischen früher und jetzt ist, dass es keinen "Körper" gibt, weil es jetzt einen Fehler gibt! Es scheint, dass jemand das Passwort auf diesem Konto geändert hat. – Nodal

Antwort

0

Wie indirekt bestimmt durch Rusian Osmanov oben, war das Problem einfach, dass es keine body über diese Antwort. Der Grund dafür war korrekt in früheren Arbeiten ist, dass es ein body war dann aber nicht länger jetzt (wegen einiger Anmeldeinformationen geändert wird, habe ich jetzt eine Fehlerantwort auf diese Anfrage erhalten).

Danke!

Verwandte Themen