关于Node.js中HTTP请求返回数据需要JSON解析的问题
在编写项目过程中,需要用到实时数据的推送需求, 所以首先想到了NodeJS的websocket模块
在网上找了一个聊天室的例子 然后将其改为自己需求的推送
其中遇到的问题
返回数据问题 : 由于对NodeJS不是非常熟悉 所以采用偷懒将数据处理等放在PHP后端处理 然后使用NodeJS进行请求 然后在这个过程中发现请求回的数据是ArrayBuffer 然后百度发现是因为需要JSON格式转换 所以又找到了JSON.parse()函数进行转换,刚刚开始的时候是非常好用的 但是后来发现了问题就是在数据量非常大的时候发现了 JSON.parse 报错误
Unexpected end of JSON input
经过各种寻找之后发现是 在请求的时候
req.on('data',function(data){ datas = JSON.parse(data) })
这个过程是会分成两次进行执行 将返回的数据切割成等同大小的数据了 所以会出现解析问题 最后采用的解决办法
let datas = ''; req.on('data',function(data){ datas += data; }) req.on('end',function(){ datas1 = JSON.parse(datas); })
这样改过之后发现就可以了
最后总结: 问题原因还是在于本人对NodeJS 不够了解 毕竟不是专业的 所以记录下来 希望以后不会忘记 计算忘记也可以找到解决办法
关于Node.js中HTTP请求返回数据需要JSON解析的问题的更多相关文章
- 【前端学习笔记】2015-09-11~~~~ js中ajax请求返回案例
<body><textarea id='a' rows=100 cols=300>result:</textarea>><script>var a ...
- js中ajax请求返回的数据处理成数组后,局部变量赋值给全局变量后,为空
第二步是想把ss的值扔给res_r,两个数组直接相等即可,可谁想到,取出来的值是空. 如图取出来的值是空. 我一脸懵逼,调试了些许时间,最后把ss遍历一下,在重新push进res_r 再来看效果,已经 ...
- 理解 Node.js 中 Stream(流)
Stream(流) 是 Node.js 中处理流式数据的抽象接口. stream 模块用于构建实现了流接口的对象. Node.js 提供了多种流对象. 例如,对 HTTP 服务器的request请求和 ...
- node.js搭建代理服务器请求数据
1.引入node.js中的模块 var http = require("http"); var url = require("url"); var qs = r ...
- node.js中express模块创建服务器和http模块客户端发请求
首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...
- ajax请求返回数据,模板中的数据处理
/*ajax请求返回数据,模板中的数据处理*/ function QueryGameAsset(){ var new_start_time=$('#new_start_time').val();//开 ...
- Node.js GET/POST请求
在很多场景中,我们的服务器都需要跟用户的浏览器打交道,如表单提交. 表单提交到服务器一般都使用GET/POST请求. 我将为大家介绍 Node.js GET/POST请求. 获取GET请求内容 由于G ...
- formidable处理node.js的post请求
前言 我们都知道在node.js中,我们最常用的请求方式是get和post.其中get请求和URL相关,通过解析URL我们可以直接获取到请求的参数.但是post请求不同,post请求是包含在请求体中, ...
- node.js中使用http模块创建服务器和客户端
node.js中的 http 模块提供了创建服务器和客户端的方法,http 全称是超文本传输协议,基于 tcp 之上,属于应用层协议. 一.创建http服务器 const http = require ...
随机推荐
- kafka---broker 保存消息
1 .存储方式 物理上把 topic 分成一个或多个 patition(对应 server.properties 中的 num.partitions=3 配置),每个 patition 物理上对应一个 ...
- 如何在命令行中让python2和python3同存
初学python,你可能同时安装了python2和3.在我们安装好python之后,我们会面临这样一个问题,在命令行输入"python",可能会出错,或者只能调用其中一个版本,py ...
- jsp 九大内置对象和其作用详解
JSP中一共预先定义了9个这样的对象,分别为:request.response.session.application.out.pagecontext.config.page.exception 1. ...
- 一日一练-CSS-CSS 居中
特别声明:此篇文章内容来源于@CHRIS COYIER 的Centering in CSS:A Complete Guide 子曰:CSS 居中是一个非常常见的问题,无论是在项目中,还是在各种面试资料 ...
- Centos MySQL数据库迁移详细步骤
其实迁移数据库,一般用sql文件就行,把A服务器数据库的表结构和数据等等导出,然后导入到B服务器数据库, 但是这次数据文件过大,大约有40个G,使用命令行导入,效果不是很好,经常在执行过程中报错.卡死 ...
- CSS3中不常用但很有用的属性-1
内容来源于W3Cschool和<图解CSS3核心技术与案例实战> 1.:target选择器 URL 带有后面跟有锚名称 #,指向文档内某个具体的元素.这个被链接的元素就是目标元素(targ ...
- 学习React系列(九)——高阶函数
定义:高阶组件就是一个函数,且该函数接收一个组件作为参数,并返回一个新的组件. (上一篇已经说过了高阶组件可以用来解决交叉问题) 一.不要改变原始组件,使用组合 class A extends Rea ...
- MySQL 表空间传输
聊到MySQL数据迁移的话题,表空间传输时一个很实用的方法. 在MySQL 5.6 Oracle引入了一个可移动表空间的特征(复制的表空间到另一个服务器)和Percona Server采用部分备份,这 ...
- 关于div包裹img,底下多出3px间隙的问题
背景:昨天写过一个div包裹图片的html,已经reset了所有的div,但还是发现img与div底部会有3px的间距,我检查了所有的css,发现并未发现什么问题,结果度娘了一下,发现好多朋友都遇到了 ...
- Angular1.x使用小结
之前工作以Angular1.x为主,主要做业务系统,以后工作中技术栈可能以vue为主,在此对Angular1.x的使用做一个简单总结,这里使用1.5+版本. 基本概念 1.依赖注入 依赖注入,在ang ...