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

2018年9月19日 评论

今天用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
我的微信
爱生活、爱学习的小伙伴可以通过扫一扫二维码添加我的个人微信一起交流!
利用n管理node版本,轻松切换node Node.js

利用n管理node版本,轻松切换node

前言 这段时间,一直都是用node的稳定版本,最近因为工作需要,需要用到其他node版本,Google搜了一下,有很好的一个解决方案,选择node版本管理工具,轻松切换node。有两个很好的node版...
正确的安装和使用nvm(mac) Node.js

正确的安装和使用nvm(mac)

前言 目前主流的node版本管理工具有两种,nvm和n。两者差异挺大的,具体分析可以参考一下淘宝FED团队的一篇文章: 管理 node 版本,选择 nvm 还是 n? 总的来说,nvm有点类似于 Py...
匿名

发表评论

匿名网友