nodejs 请求数据不完整问题解决

  • A+
所属分类:Node.js

今天用nodejs请求天气数据时遇到使用JSON.parse()解析数据时始终报错的问题,仔细调试后才发现获取到的json字符串莫名的丢掉了一部分;

const https = require('https');
https.request({
  hostname: url,
  path: '/rot',
  method: 'GET',
  headers: {
    'Content-Type': 'application/json; chartset=utf-8'
  }
}, res => {
  res.setEncoding('utf-8');
  res.on('data', chunk => {
    console.log(chunk);
  });
});

根据上段代码 获取出来的数据 chunk 只是部分数据,而不是完整的数据,解决此问题,只需要在回调中更改部分代码就可以了;

// 回调应改为:
res => {
  res.setEncoding('utf-8');
  let str = ''; //用变量存储;
  res.on('data', chunk => {
     str += chunk;
  });
  res.on('end', ()=> {
     console.log(str);
  });
}

至此,此时的str就是完整的返回数据了, JSON.parse(str) 也就不会报错;

weinxin
我的微信
爱生活、爱学习的小伙伴可以通过扫一扫二维码添加我的个人微信一起交流!
青青子衿

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: