无法从nodejs请求结果中读取结果

时间:2016-05-28 16:43:20

标签: javascript node.js

我通过节点js'请求向FB graph api发出请求:

 request({
        url: 'https://graph.facebook.com/v2.6/' + userId + '?fields=first_name,last_name&access_token=' + token,
        method: 'GET', 
    }, function (error, response, body) {
        console.log(error);    
    }).on('response', function (response) {
        response.on('data', function (data) {
            console.log('user data ' + data); // logs user data {
                                              //  "first_name": "Marcus",
                                              //  "last_name": "Green" }

            var userData = {
                firstName: data['first_name'],
                lastName: data['last_name']
            };

            console.log(userData.firstName) // logs undefined
        })
    });

当我分配data.first_namedata.last_name

时,会发生同样的情况

1 个答案:

答案 0 :(得分:2)

如果第一个电话console.log('user data ' + data);返回:

"user data{"first_name":"A","last_name":"B"}"

而不是:

"user data[object Object]"

这意味着data对象是String,而不是Object。如果要将其用作对象并访问其字段,请先使用以下方法解析它:

var parsedData = JSON.parse(data);
console.log(parsedData.first_name); // Logs first_name now