Nodejs、请求和点符号

Nodejs, Request and Dot notation

我正在尝试通过 API 获取 Facebook 用户的名字。 这是我的代码

  var user = request("https://graph.facebook.com/v2.6/"+psid+"?fields=first_name,last_name&access_token="+token, function(err, res, body) {  
    console.log("name: " + body.first_name);
    console.log("body: " + body);
  });

这是结果:

name: undefined
body: {"first_name":"Anton","last_name":"Rosato"}

为什么名称未定义?

它是未定义的,因为正文是一个字符串。在尝试读取 first_name.

之前投射 body = JSON.parse(body)

您可以遵循@yBrodsky 的建议或将选项对象添加到请求中 {json:true}。这会自动将 'Content-type: application/json' 添加到您的请求中并将响应解析为 json.

reqeust.get(url, {json:true}, callbalck)

https://www.npmjs.com/package/request#requestoptions-callback