首页 > 解决方案 > 当我尝试访问 javascript 对象的键时,它告诉我它是未定义的,即使它存在?

问题描述

所以以下是我正在调用的函数:

function* makeRequest(payload) {
   return new Promise(function(resolve) {
      request(payload,
        function (error, response, body) {
            console.log('body', body);
            console.log('body.success', body.success);
            resolve(body);
        });
   });
}

的输出console.log('body', body);如下:

{ "success": true, "challenge_ts": "2018-09-29T21:09:13Z", "hostname": "localhost" }

sobody显然确实包含一个应该可以访问的对象。但是,当尝试访问body.success我所得到的一切时undefined......关于为什么会这样的任何想法?

标签: javascriptjsonnode.jsrequestes6-promise

解决方案


所以,事实证明,请求库中的响应主体可以是一个字符串。我能够使用@Bergi 向console.log(typeof body) 推荐的方法确认它是一个字符串。

所以解决方案是设置body = JSON.parse(body);为了将字符串化对象解析回实际对象。


推荐阅读