提问者:小点点

如何解决“NodeJS API调用响应是一个不可解析的对象”?


我得到以下结果后,我的API调用。

我的节点版本是12.x

 {"type":"Buffer","data":[123,34,101,114,114,111,114,115,34,58,91,34,74,87,84,32,105,115,32,101,120,112,105,114,101,100,32,111,114,32,100,111,101,115,32,110,111,116,32,104,97,118,101,32,112,114,111,112,101,114,32,39,101,120,112,39,32,99,108,97,105,109,34,93,125,11]}

请参阅下面的代码片段:

let postOptions = {
        host: 'vault.server',
        path: '/v1/auth/gcp/login',
        method: HTTPS.POST_REQUEST,
        headers: {
            'Content-Type': 'application/json; charset=utf-8',
            'X-Vault-Namespace': 'mynamespace'
        },
        json: true,
        
        rpDefaults: {
            strictSSL: false
        }
    };

    let requestPayLoad = {

        "role": this._vaultRole,
        "jwt": signedJWT
    };
    console.log(JSON.stringify(requestPayLoad));
    console.log(JSON.stringify(postOptions));
    try {
        let result = await HTTPS.makeRequest(postOptions, JSON.stringify(requestPayLoad), HTTPS.POST_REQUEST);
        console.log('Response***************',JSON.stringify(result));
        return result.auth.client_token;
    }

请帮我解决这个问题


共1个答案

匿名用户

如果您想从API返回的响应中访问数据,请调用do:


let data = result.data;

和I,您希望获得如下所示的client_token:

return result.auth.client_token;

这是不可能的,因为响应上没有auth属性:

 {"type":"Buffer","data":[123,34,101,114,114,111,114,115,34,58,91,34,74,87,84,32,105,115,32,101,120,112,105,114,101,100,32,111,114,32,100,111,101,115,32,110,111,116,32,104,97,118,101,32,112,114,111,112,101,114,32,39,101,120,112,39,32,99,108,97,105,109,34,93,125,11]}