【nodejs-BUFFER已弃用】

报错BUFFER

const buf =new Buffer(JSON.stringify("{'name':'jack'}"));

var Buffer: BufferConstructor
new (str: string, encoding?: BufferEncoding) => Buffer (+5 overloads)
Allocates a new buffer containing the given {str}.

@param str — String to store in buffer.

@param encoding — encoding to use, optional. Default is ‘utf8’

@deprecated — since v10.0.0 - Use Buffer.from(string[, encoding]) instead.

“Buffer”的签名“(str: string, encoding?: BufferEncoding): Buffer”已弃用。ts(6387)
buffer.d.ts(187, 16): 该声明曾在此处标记为已弃用。

var缓冲区:缓冲构造器
new (str:字符串,编码?:BufferEncoding) = >缓冲区(+5过载)
分配包含给定{str}的新缓冲区。
@ param str要存储在缓冲区中的字符串。
@ param encoding要使用的编码,可选。默认为“utf8”
@ deprecated从v10.0.0开始-改用Buffer.from(string[,encoding])。
"缓冲"的签名”(str:字符串,编码?:BufferEncoding):缓冲"已弃用ts(6387)
buffer.d.ts(187,16):该声明曾在此处标记为已弃用。

new Buffer弃用

而new Buffer在JavaScript的TypedArray出现后,Buffer类实现Uint8Array的方式,是更优化和适合Node.js的API。所以目前new Buffer的方式已经弃用。

弃用原因

在6.0.0之前的Node.js版本中,Buffer使用Buffer构造函数创建实例,该函数Buffer根据提供的参数分配不同的返回值:

  1. 由于行​​为new Buffer()​​因第一个参数的类型而异,因此在Buffer不执行参数验证或初始化时,可能会无意中将安全性和可靠性问题引入应用程序。
  2. 为了使创建Buffer实例更为可靠,不容易出错,各种形式的new Buffer()构造已经被弃用 ,并通过独立的更换​​Buffer.from()​​​,​​Buffer.alloc()​​​和​​Buffer.allocUnsafe()​​方法。

具体看:​​勇敢*牛牛的Node.js的Buffer(缓冲区)和Stream​​​ 操作点击:​​勇敢*牛牛的Node.js的Buffer(缓冲区)和Stream​

替换方法

const buf = Buffer.from(JSON.stringify("{'name':'jack'}"));