最近使用了protobuf进行数据交互,发送在node.js接收前端的二进制数据出现了数据错误等问题。后来发现思路上面的问题,在req.on('data',()=>{})事件中的处理不适当才引发数据错乱。借此发

我先直接贴正确接收二进制数据代码

const server = http.createServer((req, res) => {if(req.method==='OPTIONS'){res.setHeader("Access-Control-Allow-Origin", "*");res.statusCode=200;}if(req.method==='POST'){// 存储数组空间let msg=[];// 接收到数据消息req.on('data',(chunk)=>{if(chunk){msg.push(chunk);}})// 接收完毕req.on('end',()=>{// 对buffer数组阵列列表进行buffer合并返回一个Bufferlet buf=Buffer.concat(msg);conosole.log(buf)//提取Buffer正确})
}
});
server.listen(3000,'127.0.0.1');

在nodejs中接收buffer数据需要以数组阵列的方式存储然后通过buffer.concat对数组阵列合并创建新的arraybuffer。这样就正确的接收二进制数据了。

如何在Node.js的httpServer中接收前端发送的arraybuffer数据相关推荐

  1. node.js api接口_如何在Node.js API客户端中正常处理故障

    node.js api接口 by Roger Jin 罗杰·金(Roger Jin) 如何在Node.js API客户端中正常处理故障 (How to gracefully handle failur ...

  2. node.js ejs_如何在Node.js应用程序中使用EJS模板

    node.js ejs by Jennifer Bland 詹妮弗·布兰德(Jennifer Bland) 如何在Node.js应用程序中使用EJS模板 (How to use EJS Templat ...

  3. rethinkdb_如何在Node.js应用程序中使用RethinkDB

    rethinkdb 这篇文章是由同行评审Agbonghama柯林斯和马丁·马丁内斯 . 感谢所有SitePoint的同行评审员使SitePoint内容达到最佳状态! Web应用程序最常见的任务之一就是 ...

  4. 如何在Node.js应用程序中使用RethinkDB

    这篇文章是由同行评审Agbonghama柯林斯和马丁·马丁内斯 . 感谢所有SitePoint的同行评审人员使SitePoint内容达到最佳状态! Web应用程序最常见的任务之一就是保存数据. 没有存 ...

  5. 如何在node.js中发出HTTP POST请求?

    如何在node.js中使用数据发出出站HTTP POST请求? #1楼 如果您使用请求库,这会变得更容易. var request = require('request');request.post( ...

  6. 如何在Node.js中打印堆栈跟踪?

    本文翻译自:How to print a stack trace in Node.js? 有谁知道如何在Node.js中打印堆栈跟踪? #1楼 参考:https://stackoom.com/ques ...

  7. 如何在Node.js中获取本机本地IP地址

    最近在做Cloud related的项目时,遇到一个问题,就是如何在Node.js中获取本机的IP地址.Node.js提供的API中,只能获取本机的hostname. os = require('os ...

  8. package.json在Node JS应用程序中的重要性

    Before starting Node JS applications development, we should learn some basics and importance of pack ...

  9. Node.js:项目中的 package.json 格式

    1. node.js 项目包下的 package.json : 实例: {"name" : "chatroooms","version" : ...

最新文章

  1. 20150726 填坑日记
  2. Linux安装卸载mysql
  3. js 获取日期并格式化
  4. YBTOJ:最小数(欧拉函数)
  5. 【转载】C# 理解泛型
  6. leetcode题解(二叉树和递归问题)
  7. jQuery 对象与Dom 对象互转
  8. Windows 集成 FTP 服务器配置–WS08R2已验证
  9. LeetCode 357. 计算各个位数不同的数字个数(动态规划)
  10. 每周荐书:高可用架构、解忧程序员、财富自由之路(评论送书)
  11. linux共享文件丢失,linux基础应用(NFS文件共享)
  12. 流程图常用符号及其代表含义
  13. 产品经理 项目管理
  14. EXCEL startup.exe 宏病毒
  15. 用Jupyter—Notebook爬取网页数据实例1
  16. 单片机动态从00到99C语言,单片机00~99秒表显示
  17. html标签(段落标签,换行标签,文本格式化标签和局部标签)-小白学习中
  18. android p蓝色壁纸,iPhone和Android的最佳蓝色系壁纸分享
  19. Detecting Causality in Complex Ecosystems(检测复杂生态系统中的因果关系附件)
  20. 中小科技企业新蓝图,抓住资本新机遇!北京证券交易所要来了

热门文章

  1. 遵义大数据中心项目工程概况_中策大数据:8月建筑工程项目有哪些?建筑工程项目信息汇总...
  2. python整数预测_时间序列预测全攻略(附带Python代码) | 36大数据
  3. 电脑公司win11 64位旗舰版镜像文件v2021.07
  4. 调节Win7系统任务栏预览窗口大小的方法
  5. c语言编写劫持dll,c语言-----劫持自己02
  6. linux怎么查看sklearn版本,Sklearn——Sklearn的介绍与安装
  7. jmstemplate 获取队列id_学习Linux(38)消息队列
  8. mysql is needed by_libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.9-1.el6.x86_64
  9. Vue 组件的自定义事件
  10. java实时更新权限_java – 如何使用Spring Security重新加载用户更新的权限