Json的结果是" undefined"前缀

时间:2014-10-27 01:56:41

标签: node.js

我使用节点https模块从另一台服务器获取auth信息,我得到的结果是“result = undefined {a:...,b:...}”,所以我不能使用JSON.parse来解析结果数据,但如果我使用“JSON.parse(body.substr(9))”,我可以得到正确的结果。 有关更多信息,如果我使用post工具获取结果,我得到的结果类型是“application / json”,结果是正确的json对象。我使用以下代码来获取发布结果。

 var options={
    hostname:...,
    port:null,
    path:...,
    method:'post',
    rejectUnauthorized:false,
    requestCert:true,
    agent:false
  }
  var https.request(options,function(res){
    var body;

    res.on('data',function(chunk){
       body+=chunk;
    });

    res.on('end',function(){
       console.log(JSON.parse(body));
    });
  });

1 个答案:

答案 0 :(得分:1)

您应该使用空字符串初始化body

var body = '';

因为否则,第一次

body+=chunk;

被调用,bodyundefined并且被连接为"undefined"字符串:

> var body;
undefined
> body += "{}"
'undefined{}'
> var body = '';
undefined
> body += "{}"
'{}'