- Node.js 教程
- Node.js - 首页
- Node.js - 简介
- Node.js - 环境搭建
- Node.js - 第一个应用程序
- Node.js - REPL 终端
- Node.js - 命令行选项
- Node.js - 包管理器 (NPM)
- Node.js - 回调函数概念
- Node.js - 上传文件
- Node.js - 发送邮件
- Node.js - 事件
- Node.js - 事件循环
- Node.js - 事件发射器
- Node.js - 调试器
- Node.js - 全局对象
- Node.js - 控制台
- Node.js - 进程
- Node.js - 应用程序扩展
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 缓冲区
- Node.js - 流
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 入门
- Node.js - MySQL 创建数据库
- Node.js - MySQL 创建表
- Node.js - MySQL 插入数据
- Node.js - MySQL 查询数据
- Node.js - MySQL 条件查询
- Node.js - MySQL 排序
- Node.js - MySQL 删除数据
- Node.js - MySQL 更新数据
- Node.js - MySQL 连接查询
- Node.js MongoDB
- Node.js - MongoDB 入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB 插入数据
- Node.js - MongoDB 查找数据
- Node.js - MongoDB 查询
- Node.js - MongoDB 排序
- Node.js - MongoDB 删除数据
- Node.js - MongoDB 更新数据
- Node.js - MongoDB 限制结果
- Node.js - MongoDB 连接查询
- Node.js 模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - 实用工具模块
- Node.js - Web 模块
- Node.js 有用资源
- Node.js - 快速指南
- Node.js - 有用资源
- Node.js - 讨论
Node.js - Buffer.alloc() 方法
NodeJS 的 Buffer.alloc() 方法用于创建一个指定大小的新缓冲区。如果指定的大小大于 `buffer.constants.MAX_LENGTH` 或小于 0,则会抛出类型为 ERR_INVALID_ARG_VALUE 的错误。如果指定的大小不是数字,则会抛出 TypeError。
使用 Buffer.alloc() 创建缓冲区比其替代方法 Buffer.allocUnsafe() 慢,但它确保新创建的缓冲区不包含来自先前缓冲区的任何敏感数据以及先前为缓冲区创建分配的数据。
语法
以下是 NodeJS Buffer.alloc() 方法 的语法:
Buffer.alloc(size[, fill[, encoding]])
参数
此方法接受三个参数,如下所述。
size − (必填) 整数值,表示要创建的缓冲区的长度。
fill − (可选) 缓冲区填充的值。默认为 0。
encoding − (可选) 使用的编码,默认为 utf8。如果使用字符串,则需要指定编码。
返回值
Buffer.alloc() 方法将返回指定大小的缓冲区。
示例
此示例演示如何使用 NodeJS Buffer.alloc() 方法创建缓冲区:
const mybuffer = Buffer.alloc(5); console.log(mybuffer);
输出
缓冲区大小为 5。由于未使用 fill 参数,因此默认值 0 填充了大小为 5 的缓冲区。
<Buffer 00 00 00 00 00>
示例
此示例演示如何使用 Buffer.alloc() 方法和 fill 参数创建缓冲区:
const mybuffer = Buffer.alloc(5, 5); console.log(mybuffer);
输出
缓冲区大小为 5。由于使用了 fill 参数值为 5。
<Buffer 05 05 05 05 05>
示例
此示例演示如何使用 Buffer.alloc() 方法并将 fill 参数设置为字符串值:
const mybuffer = Buffer.alloc(5, 'a'); console.log(mybuffer); console.log(mybuffer.toString());
输出
缓冲区大小为 5。由于使用了 fill 参数值为字符串 'a'。
<Buffer 61 61 61 61 61> aaaaa
示例
此示例演示如果使用非数字大小参数会抛出错误。
const mybuffer = Buffer.alloc('1'); console.log(mybuffer); console.log(mybuffer.toString());
输出
由于 size 参数为字符串,这是一个无效的值,因为 size 必须是整数。执行上述程序时,将抛出如下所示的错误。
TypeError [ERR_INVALID_ARG_TYPE]: The "size" argument must be of type number. Received type string at Function.alloc (buffer.js:271:3) at Object.<anonymous> (C:\nodejsProject\src\testbuffer.js:1:25) at Module._compile (internal/modules/cjs/loader.js:816:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:827:10) at Module.load (internal/modules/cjs/loader.js:685:32) at Function.Module._load (internal/modules/cjs/loader.js:620:12) at Function.Module.runMain (internal/modules/cjs/loader.js:877:12) at internal/main/run_main_module.js:21:11
nodejs_buffer_module.htm
广告