关于Node.js中HTTP请求返回数据需要JSON解析的问题

Posted 倔强新手猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于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解析的问题的主要内容,如果未能解决你的问题,请参考以下文章

node.js 中的同步 HTTP 请求

node.js创建服务,发送请求后返回数据

如何从 Node.js http get 请求中获取数据

node.js根据不同的请求路径返回不同的数据

node.js HTTP模块URL 模块

Node.js关于微信支付V3版相关处理方法