如何在Node.js的httpServer中接收前端发送的arraybuffer数据
最近使用了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数据相关推荐
- node.js api接口_如何在Node.js API客户端中正常处理故障
node.js api接口 by Roger Jin 罗杰·金(Roger Jin) 如何在Node.js API客户端中正常处理故障 (How to gracefully handle failur ...
- node.js ejs_如何在Node.js应用程序中使用EJS模板
node.js ejs by Jennifer Bland 詹妮弗·布兰德(Jennifer Bland) 如何在Node.js应用程序中使用EJS模板 (How to use EJS Templat ...
- rethinkdb_如何在Node.js应用程序中使用RethinkDB
rethinkdb 这篇文章是由同行评审Agbonghama柯林斯和马丁·马丁内斯 . 感谢所有SitePoint的同行评审员使SitePoint内容达到最佳状态! Web应用程序最常见的任务之一就是 ...
- 如何在Node.js应用程序中使用RethinkDB
这篇文章是由同行评审Agbonghama柯林斯和马丁·马丁内斯 . 感谢所有SitePoint的同行评审人员使SitePoint内容达到最佳状态! Web应用程序最常见的任务之一就是保存数据. 没有存 ...
- 如何在node.js中发出HTTP POST请求?
如何在node.js中使用数据发出出站HTTP POST请求? #1楼 如果您使用请求库,这会变得更容易. var request = require('request');request.post( ...
- 如何在Node.js中打印堆栈跟踪?
本文翻译自:How to print a stack trace in Node.js? 有谁知道如何在Node.js中打印堆栈跟踪? #1楼 参考:https://stackoom.com/ques ...
- 如何在Node.js中获取本机本地IP地址
最近在做Cloud related的项目时,遇到一个问题,就是如何在Node.js中获取本机的IP地址.Node.js提供的API中,只能获取本机的hostname. os = require('os ...
- package.json在Node JS应用程序中的重要性
Before starting Node JS applications development, we should learn some basics and importance of pack ...
- Node.js:项目中的 package.json 格式
1. node.js 项目包下的 package.json : 实例: {"name" : "chatroooms","version" : ...
最新文章
- 20150726 填坑日记
- Linux安装卸载mysql
- js 获取日期并格式化
- YBTOJ:最小数(欧拉函数)
- 【转载】C# 理解泛型
- leetcode题解(二叉树和递归问题)
- jQuery 对象与Dom 对象互转
- Windows 集成 FTP 服务器配置–WS08R2已验证
- LeetCode 357. 计算各个位数不同的数字个数(动态规划)
- 每周荐书:高可用架构、解忧程序员、财富自由之路(评论送书)
- linux共享文件丢失,linux基础应用(NFS文件共享)
- 流程图常用符号及其代表含义
- 产品经理 项目管理
- EXCEL startup.exe 宏病毒
- 用Jupyter—Notebook爬取网页数据实例1
- 单片机动态从00到99C语言,单片机00~99秒表显示
- html标签(段落标签,换行标签,文本格式化标签和局部标签)-小白学习中
- android p蓝色壁纸,iPhone和Android的最佳蓝色系壁纸分享
- Detecting Causality in Complex Ecosystems(检测复杂生态系统中的因果关系附件)
- 中小科技企业新蓝图,抓住资本新机遇!北京证券交易所要来了
热门文章
- 遵义大数据中心项目工程概况_中策大数据:8月建筑工程项目有哪些?建筑工程项目信息汇总...
- python整数预测_时间序列预测全攻略(附带Python代码) | 36大数据
- 电脑公司win11 64位旗舰版镜像文件v2021.07
- 调节Win7系统任务栏预览窗口大小的方法
- c语言编写劫持dll,c语言-----劫持自己02
- linux怎么查看sklearn版本,Sklearn——Sklearn的介绍与安装
- jmstemplate 获取队列id_学习Linux(38)消息队列
- mysql is needed by_libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.9-1.el6.x86_64
- Vue 组件的自定义事件
- java实时更新权限_java – 如何使用Spring Security重新加载用户更新的权限