node-开发环境与Buffer(二进制数据的类)--01

1.node.js

        Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时,用于构建高性能的网络应用程序。它采用事件驱动、非阻塞 I/O 模型,使得它非常适合构建数据密集型的实时应用程序。

Node.js 具有以下特点和优势:

  1. 事件驱动: Node.js 使用事件驱动的架构,通过回调函数处理异步操作,使得可以高效地处理大量并发请求。

  2. 非阻塞 I/O: Node.js 使用非阻塞 I/O 模型,允许处理多个并发请求而无需创建多个线程,从而降低了系统资源消耗。

  3. 跨平台: Node.js 可以在多个操作系统上运行,包括 Windows、Mac 和 Linux。

  4. NPM 包管理器: Node.js 附带了 NPM(Node Package Manager),这是一个丰富的包管理工具,允许开发者轻松地安装、更新和管理依赖包。

  5. 前后端统一语言: Node.js 使用 JavaScript 作为开发语言,使得前端和后端可以使用同一种语言进行开发,简化了全栈开发人员的学习成本。

Node.js 可以用于构建各种类型的应用程序,包括 Web 服务器、API 服务、实时通信应用、命令行工具等。它具有强大的生态系统和活跃的社区支持,提供了丰富的模块和工具来简化开发过程。

2.环境配置

        根据自身电脑配置下载与配置node.js(具体可以到node官网进行查询自己需要的版本以及下载)。

        验证环境是否搭建成功(命令行)

3.终端运行

        2.1命令行常用操作

        切盘 C: D:

        切换工作目录 cd

        查看目录文件 dir

        2.2运行

        在对应的文件路径下 node xxx.js

        2.3 vscode 运行

        集成终端中 node  xxx.js

4.Buffer(缓冲器)

        Buffer 是用于处理二进制数据的类。它提供了对二进制数据的操作和处理,包括创建、读取、写入、转换等功能。Buffer 类在 Node.js 中是全局对象,因此无需使用 require() 来引入。

以下是一些常见的 Buffer 操作:

  1. 创建 Buffer 对象

    • 通过指定长度创建 Buffer 对象:const buf = Buffer.alloc(10);
    • 通过字符串创建 Buffer 对象:const buf = Buffer.from('hello', 'utf8');
  2. 读取和写入

    • 读取指定位置的字节:buf[index]
    • 写入指定位置的字节:buf[index] = value
  3. 转换为字符串

    • 将 Buffer 对象转换为字符串:buf.toString()
    • 指定编码方式进行转换:buf.toString('utf8')
  4. 拷贝和裁剪

    • 拷贝部分数据到新的 Buffer 对象:buf.slice(start, end)
    • 裁剪多余的空间:buf.slice(0, buf.length)
  5. 其他操作

    • 获取 Buffer 的长度:buf.length
    • 比较两个 Buffer 对象:Buffer.compare(buf1, buf2)

Buffer 类在 Node.js 中被广泛应用于处理文件、网络通信、加密解密等场景中。需要注意的是,在使用 Buffer 时要小心处理内存溢出和安全性问题。

4.1创建Buffer对象
	// alloc(10)
	// 创建buffer对象长度为10字节 相当于申请了10字节的内存空间 每一个字节值为0
	const buf = Buffer.alloc(10);//<Buffer 00 00 00 00 00 00 00 00 00 00>

	// allocUnsafe(10)
	// 可能会存在旧数据,影响执行结果,因此unsafe
	const buf2=Buffer.allocUnsafe(10)//<Buffer 00 00 00 00 00 00 00 00 00 00>

	// from()
	// 字符创建一个utf-8占三个字节
	// 每一个字母都会转换为这个字符在 Unicode 码表当中对应的那个数字,然后这个数字会转成二进制,然后存到 buffer 当中,
	const buf3=Buffer.from('yeye','utf8');//<Buffer 79 65 79 65>
	// from数组创建Buffer
	const buf4=Buffer.from([105,108,111,118,101,121,111,117]);//<Buffer 69 6c 0b 76 65 79 6f 75>
4.2.转换为字符串
	// 对象转换为字符串
	console.log(buf4.toString());//iloveyou
	// 指定编码方式进行转换
	console.log(buf4.toString('utf8'));//iloveyou
4.3.读取与写入
// 读取
	console.log(buf4[1]);//108
	// 修改
	buf4[1]=96
	console.log(buf4[1]);//96
4.4.数字的进制转换
console.log(buf4[1].toString(2));//1100000 7位前面第一位0输出时进行舍弃
4.5拷贝与剪切
// 拷贝 Buffer 对象
	const father = Buffer.from('Hello, World!');
	const son = father.slice(7, 12); // 从位置 7 到 12(不包括)的子 Buffer
	console.log(son.toString()); // World
	// 裁剪 Buffer 对象
	const bestSon=father.slice(7)// 从位置 7 开始到结尾的子 Buffer
	console.log(bestSon.toString());// World!
4.6获取 Buffer 的长度
console.log(buf4.length);//8
4.7 比较两个 Buffer 对象

bufA 在排序中应排在 bufB 之前,则返回一个负数。

bufA 和 bufB 相等,则返回 0。

bufA 在排序中应排在 bufB 之后,则返回一个正数。

const bufA = Buffer.from('abc');
const bufB = Buffer.from('abcd');
const result = Buffer.compare(bufA, bufB);
console.log(result); // 输出:-1

5.总结(Buffer常用实际场景)

  1. 文件操作:在读取和写入文件时,经常需要处理文件的二进制数据,例如图片、音频、视频等。Buffer 类可以用于读取和操作文件的二进制数据。

  2. 网络通信:在进行网络通信时,需要处理请求和响应的二进制数据,例如处理 HTTP 请求和响应的内容。Buffer 类可以用于解析和处理网络通信中的二进制数据。

  3. 加密解密:在进行加密解密操作时,需要处理原始数据的二进制形式。Buffer 类可以用于存储加密解密操作的输入输出数据。

  4. 数据传输:在进行数据传输时,需要处理数据的二进制形式,例如通过流来传输大量数据。Buffer 类可以用于存储和操作传输中的二进制数据。

  5. 缓冲区管理:在一些底层系统编程中,需要手动管理内存缓冲区以存储和处理数据。Buffer 类可以提供对内存缓冲区的灵活控制。

  6. 处理二进制数据Node.js 中的 Buffer 类适用于各种需要处理二进制数据的场景,包括文件操作、网络通信、加密解密、数据传输等。它提供了对二进制数据的高效处理和操作能力,并且在 Node.js 的底层实现中被广泛使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值