在编写项目过程中,需要用到实时数据的推送需求, 所以首先想到了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解析的问题的更多相关文章

  1. 【前端学习笔记】2015-09-11~~~~ js中ajax请求返回案例

    <body><textarea id='a' rows=100 cols=300>result:</textarea>><script>var a ...

  2. js中ajax请求返回的数据处理成数组后,局部变量赋值给全局变量后,为空

    第二步是想把ss的值扔给res_r,两个数组直接相等即可,可谁想到,取出来的值是空. 如图取出来的值是空. 我一脸懵逼,调试了些许时间,最后把ss遍历一下,在重新push进res_r 再来看效果,已经 ...

  3. 理解 Node.js 中 Stream(流)

    Stream(流) 是 Node.js 中处理流式数据的抽象接口. stream 模块用于构建实现了流接口的对象. Node.js 提供了多种流对象. 例如,对 HTTP 服务器的request请求和 ...

  4. node.js搭建代理服务器请求数据

    1.引入node.js中的模块 var http = require("http"); var url = require("url"); var qs = r ...

  5. node.js中express模块创建服务器和http模块客户端发请求

    首先下载express模块,命令行输入 npm install express 1.node.js中express模块创建服务端 在js代码同文件位置新建一个文件夹(www_root),里面存放网页文 ...

  6. ajax请求返回数据,模板中的数据处理

    /*ajax请求返回数据,模板中的数据处理*/ function QueryGameAsset(){ var new_start_time=$('#new_start_time').val();//开 ...

  7. Node.js GET/POST请求

    在很多场景中,我们的服务器都需要跟用户的浏览器打交道,如表单提交. 表单提交到服务器一般都使用GET/POST请求. 我将为大家介绍 Node.js GET/POST请求. 获取GET请求内容 由于G ...

  8. formidable处理node.js的post请求

    前言 我们都知道在node.js中,我们最常用的请求方式是get和post.其中get请求和URL相关,通过解析URL我们可以直接获取到请求的参数.但是post请求不同,post请求是包含在请求体中, ...

  9. node.js中使用http模块创建服务器和客户端

    node.js中的 http 模块提供了创建服务器和客户端的方法,http 全称是超文本传输协议,基于 tcp 之上,属于应用层协议. 一.创建http服务器 const http = require ...

随机推荐

  1. maven常见问题处理(3-3)Gradle编译时下载依赖失败解决方法

    Gradle编译时在本地仓库中如果没有发现依赖,就会从远程仓库中下载, 默认的远程仓库为 mavenCentral(),即 http://repo1.maven.org/maven2/往往访问速度特别 ...

  2. OAuth2.0学习(1-1)OAuth2.0是什么?

    目前很多开放平台如新浪微博开放平台都在使用提供开放API接口供开发者使用,随之带来了第三方应用要到开放平台进行授权的问题 OAuth就是用于为第三方应用授权访问用户的资源应用的. 目前有OAuth1. ...

  3. Linux之Shell命令

    开始接触Linux命令行,学习Linux文件系统导航以及创建.删除.处理文件所需的命令.  注:文末有福利! 几个快捷键: Linux发行版通常使用Ctrl+Alt组合键配合F1~F7进入要使用的控制 ...

  4. byte在计算机中的存储方式--Double.byteValue()的输出结果思考

    先举三个栗子: 1. public static void main(String[] args) { Double d = new Double(123.56); byte b = d.byteVa ...

  5. Oracle复合B*tree索引branch block内是否包含非先导列键值?

    好久不碰数据库底层细节的东西,前几天,一个小家伙跑来找我,非要说复合b*tree index branch block中只包含先导列键值信息,并不包含非先导列键值信息,而且还dump了branch b ...

  6. spring6——AOP的编程术语

    面向切面编程作为一种编程思想,允许我们对程序的执行流程及执行结果动态的做出改变,以达到业务逻辑之间的分层管理或者是目标对象方法的增强,spring框架很好的实现了这种编程思想,让我们可以对主业务逻辑和 ...

  7. 基于JWT标准的用户认证接口实现

    前面的话 实现用户登录认证的方式常见的有两种:一种是基于 cookie 的认证,另外一种是基于 token 的认证 .本文以基于cookie的认证为参照,详细介绍JWT标准,并实现基于该标签的用户认证 ...

  8. php array_multisort函数实现按某一字段对二维数组进行排序

    在工作中碰到一个页面如表格似的展示多条数据,要求根据其中的修改时间对数据进行排序, 数据格式类似于 $a = array( 0=>array( editTime=>'' addTime=& ...

  9. Python更新pip出现错误解决方法

    Python更新pip出现错误解决方法 更新pip python -m pip install --upgrade pip 查看时报错 解决方法 在命令栏(即win+r)输入:easy_install ...

  10. [HNOI 2013]数列

    Description 题库链接 给你四个数 \(N,K,M,P\) ,让你生成一段长度为 \(K\) 严格单调递增序列,并且满足: 第一位可以为任意元素: 相邻两位的差值不超过 \(M\) : 序列 ...