# safe-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![downloads][downloads-image]][downloads-url] [![javascript style guide][standard-image]][standard-url]
[travis-image]: https://img.shields.io/travis/feross/safe-buffer/master.svg
[travis-url]: https://travis-ci.org/feross/safe-buffer
[npm-image]: https://img.shields.io/npm/v/safe-buffer.svg
[npm-url]: https://npmjs.org/package/safe-buffer
[downloads-image]: https://img.shields.io/npm/dm/safe-buffer.svg
[downloads-url]: https://npmjs.org/package/safe-buffer
[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
[standard-url]: https://standardjs.com
#### Safer Node.js Buffer API
**Use the new Node.js Buffer APIs (`Buffer.from`, `Buffer.alloc`,
`Buffer.allocUnsafe`, `Buffer.allocUnsafeSlow`) in all versions of Node.js.**
**Uses the built-in implementation when available.**
## install
```
npm install safe-buffer
```
## usage
The goal of this package is to provide a safe replacement for the node.js `Buffer`.
It's a drop-in replacement for `Buffer`. You can use it by adding one `require` line to
the top of your node.js modules:
```js
var Buffer = require('safe-buffer').Buffer
// Existing buffer code will continue to work without issues:
new Buffer('hey', 'utf8')
new Buffer([1, 2, 3], 'utf8')
new Buffer(obj)
new Buffer(16) // create an uninitialized buffer (potentially unsafe)
// But you can use these new explicit APIs to make clear what you want:
Buffer.from('hey', 'utf8') // convert from many types to a Buffer
Buffer.alloc(16) // create a zero-filled buffer (safe)
Buffer.allocUnsafe(16) // create an uninitialized buffer (potentially unsafe)
```
## api
### Class Method: Buffer.from(array)
<!-- YAML
added: v3.0.0
-->
* `array` {Array}
Allocates a new `Buffer` using an `array` of octets.
```js
const buf = Buffer.from([0x62,0x75,0x66,0x66,0x65,0x72]);
// creates a new Buffer containing ASCII bytes
// ['b','u','f','f','e','r']
```
A `TypeError` will be thrown if `array` is not an `Array`.
### Class Method: Buffer.from(arrayBuffer[, byteOffset[, length]])
<!-- YAML
added: v5.10.0
-->
* `arrayBuffer` {ArrayBuffer} The `.buffer` property of a `TypedArray` or
a `new ArrayBuffer()`
* `byteOffset` {Number} Default: `0`
* `length` {Number} Default: `arrayBuffer.length - byteOffset`
When passed a reference to the `.buffer` property of a `TypedArray` instance,
the newly created `Buffer` will share the same allocated memory as the
TypedArray.
```js
const arr = new Uint16Array(2);
arr[0] = 5000;
arr[1] = 4000;
const buf = Buffer.from(arr.buffer); // shares the memory with arr;
console.log(buf);
// Prints: <Buffer 88 13 a0 0f>
// changing the TypedArray changes the Buffer also
arr[1] = 6000;
console.log(buf);
// Prints: <Buffer 88 13 70 17>
```
The optional `byteOffset` and `length` arguments specify a memory range within
the `arrayBuffer` that will be shared by the `Buffer`.
```js
const ab = new ArrayBuffer(10);
const buf = Buffer.from(ab, 0, 2);
console.log(buf.length);
// Prints: 2
```
A `TypeError` will be thrown if `arrayBuffer` is not an `ArrayBuffer`.
### Class Method: Buffer.from(buffer)
<!-- YAML
added: v3.0.0
-->
* `buffer` {Buffer}
Copies the passed `buffer` data onto a new `Buffer` instance.
```js
const buf1 = Buffer.from('buffer');
const buf2 = Buffer.from(buf1);
buf1[0] = 0x61;
console.log(buf1.toString());
// 'auffer'
console.log(buf2.toString());
// 'buffer' (copy is not changed)
```
A `TypeError` will be thrown if `buffer` is not a `Buffer`.
### Class Method: Buffer.from(str[, encoding])
<!-- YAML
added: v5.10.0
-->
* `str` {String} String to encode.
* `encoding` {String} Encoding to use, Default: `'utf8'`
Creates a new `Buffer` containing the given JavaScript string `str`. If
provided, the `encoding` parameter identifies the character encoding.
If not provided, `encoding` defaults to `'utf8'`.
```js
const buf1 = Buffer.from('this is a tést');
console.log(buf1.toString());
// prints: this is a tést
console.log(buf1.toString('ascii'));
// prints: this is a tC)st
const buf2 = Buffer.from('7468697320697320612074c3a97374', 'hex');
console.log(buf2.toString());
// prints: this is a tést
```
A `TypeError` will be thrown if `str` is not a string.
### Class Method: Buffer.alloc(size[, fill[, encoding]])
<!-- YAML
added: v5.10.0
-->
* `size` {Number}
* `fill` {Value} Default: `undefined`
* `encoding` {String} Default: `utf8`
Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the
`Buffer` will be *zero-filled*.
```js
const buf = Buffer.alloc(5);
console.log(buf);
// <Buffer 00 00 00 00 00>
```
The `size` must be less than or equal to the value of
`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is
`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will
be created if a `size` less than or equal to 0 is specified.
If `fill` is specified, the allocated `Buffer` will be initialized by calling
`buf.fill(fill)`. See [`buf.fill()`][] for more information.
```js
const buf = Buffer.alloc(5, 'a');
console.log(buf);
// <Buffer 61 61 61 61 61>
```
If both `fill` and `encoding` are specified, the allocated `Buffer` will be
initialized by calling `buf.fill(fill, encoding)`. For example:
```js
const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64');
console.log(buf);
// <Buffer 68 65 6c 6c 6f 20 77 6f 72 6c 64>
```
Calling `Buffer.alloc(size)` can be significantly slower than the alternative
`Buffer.allocUnsafe(size)` but ensures that the newly created `Buffer` instance
contents will *never contain sensitive data*.
A `TypeError` will be thrown if `size` is not a number.
### Class Method: Buffer.allocUnsafe(size)
<!-- YAML
added: v5.10.0
-->
* `size` {Number}
Allocates a new *non-zero-filled* `Buffer` of `size` bytes. The `size` must
be less than or equal to the value of `require('buffer').kMaxLength` (on 64-bit
architectures, `kMaxLength` is `(2^31)-1`). Otherwise, a [`RangeError`][] is
thrown. A zero-length Buffer will be created if a `size` less than or equal to
0 is specified.
The underlying memory for `Buffer` instances created in this way is *not
initialized*. The contents of the newly created `Buffer` are unknown and
*may contain sensitive data*. Use [`buf.fill(0)`][] to initialize such
`Buffer` instances to zeroes.
```js
const buf = Buffer.allocUnsafe(5);
console.log(buf);
// <Buffer 78 e0 82 02 01>
// (octets will be different, every time)
buf.fill(0);
console.log(buf);
// <Buffer 00 00 00 00 00>
```
A `TypeError` will be thrown if `size` is not a number.
Note that the `Buffer` module pre-allocates an internal `Buffer` instance of
size `Buffer.poolSize` that is used as a pool for the fast allocation of new
`Buffer` instances created using `Buffer.allocUnsafe(size)` (and the deprecated
`new Buffer(size)` constructor) only when `size` is less than or equal to
`Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two). The default
value of `Buffer.poolSize` is `8192` but can be modified.
Use of this pre-allocated internal memory pool is a key difference between
calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`.
Specifically, `Buffer.alloc(size, fill)` will *never* use the internal Buffer
pool, while `Buffer.allocUnsafe(size).fill(fill)` *will* use the internal
Buffer pool if `size` is less than or equal to half `Buffer.poolSize`. The
difference is subtle but can be important when an application requires the
additional performance that `Buffer.allocUnsafe(size)` provides.
### Class Method: Buffer.allocUnsafeSlow(size)
<!-- YAML
added: v5.10.0
-->
* `size` {Number}
Allocates a new *non-zero-filled* and non-pooled `Buffer` of `size` bytes. The
`size` must be less than or equal to the value of
`require('buffer').kMaxLength` (on 64-bit architectures, `kMaxLength` is
`(2^31)-1`). Otherwise, a [`RangeError`][] is thrown. A zero-length Buffer will
be created if a `size` l
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于node.js的智能点餐系统微信小程序源码(高分课程设计).zip 代码很完整下载即用,确保可以运行的。 基于node.js的智能点餐系统微信小程序源码(高分课程设计).zip 代码很完整下载即用,确保可以运行的。基于node.js的智能点餐系统微信小程序源码(高分课程设计).zip 代码很完整下载即用,确保可以运行的。基于node.js的智能点餐系统微信小程序源码(高分课程设计).zip 代码很完整下载即用,确保可以运行的。基于node.js的智能点餐系统微信小程序源码(高分课程设计).zip 代码很完整下载即用,确保可以运行的。基于node.js的智能点餐系统微信小程序源码(高分课程设计).zip 代码很完整下载即用,确保可以运行的。基于node.js的智能点餐系统微信小程序源码(高分课程设计).zip 代码很完整下载即用,确保可以运行的。基于node.js的智能点餐系统微信小程序源码(高分课程设计).zip 代码很完整下载即用,确保可以运行的。基于node.js的智能点餐系统微信小程序源码(高分课程设计).zip 代码很完整下载即用,确保可以运行的。
资源推荐
资源详情
资源评论
收起资源包目录
基于node.js的智能点餐系统微信小程序源码(高分课程设计).zip (439个子文件)
启动.bat 57B
mime.cmd 164B
.editorconfig 399B
.eslintignore 5B
.eslintrc 554B
.eslintrc 348B
.eslintrc 180B
she.jpg 134KB
sbcs-data-generated.js 31KB
response.js 26KB
index.js 23KB
parse.js 22KB
dbcs-codec.js 21KB
stringify.js 20KB
qs.js 19KB
ipaddr.js 18KB
tests.js 15KB
index.js 15KB
application.js 14KB
request.js 12KB
index.js 10KB
index.js 10KB
ipaddr.min.js 9KB
utf7.js 9KB
extend-node.js 8KB
dbcs-data.js 8KB
index.js 6KB
index.js 6KB
stringify.js 6KB
internal.js 6KB
index.js 6KB
node.js 6KB
index.js 6KB
utils.js 6KB
parse.js 6KB
urlencoded.js 6KB
index.js 6KB
utils.js 5KB
index.js 5KB
mediaType.js 5KB
menu.js 5KB
index.js 5KB
index.js 5KB
utf16.js 5KB
json.js 5KB
index.js 5KB
browser.js 5KB
index.js 4KB
debug.js 4KB
sbcs-data.js 4KB
route.js 4KB
index.js 4KB
read.js 4KB
index.js 4KB
index.js 4KB
encoding.js 3KB
language.js 3KB
index.js 3KB
streams.js 3KB
index.js 3KB
index.js 3KB
view.js 3KB
layer.js 3KB
charset.js 3KB
exp.js 3KB
index.js 3KB
index.js 3KB
index.js 3KB
index.js 3KB
mime.js 3KB
index.js 3KB
index.js 3KB
index.js 2KB
express.js 2KB
test.js 2KB
text.js 2KB
callsite-tostring.js 2KB
sbcs-codec.js 2KB
safer.js 2KB
index.js 2KB
raw.js 2KB
karma.conf.js 2KB
index.js 2KB
index.js 2KB
index.js 1KB
index.js 1KB
dangerous.js 1KB
utils.js 1KB
index.js 1KB
index.js 1KB
index.js 1KB
index.js 1KB
index.js 1KB
array-flatten.js 1KB
index.js 1KB
bom-handling.js 1KB
index.js 1KB
index.js 1KB
query.js 885B
detail.js 874B
共 439 条
- 1
- 2
- 3
- 4
- 5
盈梓的博客
- 粉丝: 9606
- 资源: 2310
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 数据分析-46-JD某商品比价分析
- 营销广告人年终总结:年度工作总结汇报实例+如何写好年终总结汇报指导(PPT底稿,可编辑)
- 「数据结构课程设计」二叉排序树与文件操作
- 数据分析-58-谷歌应用市场的APP分析
- Tesseract-OCR集成java的docker镜相包
- 第九章:函数-下(例程代码)
- 用STM32设计19264的屏程序 包括点、线、圆、矩形、反显、任意位置的读写、汉字字符
- 深度学习基础-TensorFlow入门与使用指南-tensorflow-basics-and-use-cases.md
- 搜寻excel文件匹配并自动设置IP网络信息
- 一款超级好用的U盘格式化工具(解压直接使用)
- 华豫佰佳组合促销视图.sql
- estdtyfygighuiyhihihihji
- 汽车电子芯片市场调研报告:2023年市场规模已达约820.8亿元
- 圣诞树网页设计示例 + HTML & CSS基础学习
- stc51单片机资料datasheet
- 图书管理系统-数据库设计报告.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页