Node.js – v8.deserializer.readHeader() 方法

V8。deserializer.readHeader()方法用于读取和验证标头。它还检查格式版本。遇到无效或不受支持的有线格式时会引发错误。

语法

v8.deserializer.readHeader()

参数

由于它从内部缓冲区读取标头,因此不需要任何输入参数。反序列化标头后,它将返回 True。

示例 1

创建名为“readHeader.js”snippet.After的文件并复制以下创建文件的代码,使用命令“node readHeader.js”运行此代码。

// v8.deserializer.readHeader() 演示示例

// 导入 v8 模块
const v8 = require('v8');

// 定义序列化器对象
const serializer = new v8.Serializer();

// 将标头写入内部缓冲区
serializer.writeHeader();

// 定义反序列化器对象
const deserializer = new v8.Deserializer(serializer.releaseBuffer());

// 从内部缓冲区读取标头
console.log(deserializer.readHeader());

// 从内部缓冲区打印标题值
console.log(serializer.releaseBuffer());
输出结果
C:\home\node>> node readHeader.js
undefined
<Buffer ff 0d 22 1a 57 65 6c 63 6f 6d 65 20 74 6f 20 54 75 74 6f 72 69 61 6c 73 20 50 6f 69 6e 74>

示例 2

让我们再看一个例子

// v8.serializer.readHeader() 演示示例

// 导入 v8 模块
const v8 = require('v8');

// 定义序列化器对象
const serializer = new v8.Serializer();

// 使用 writeUint32 写入一些值
console.log(serializer.writeUint32(7869));

// 将标头写入内部缓冲区
serializer.writeHeader();

// 定义反序列化器对象
const deserializer = new
v8.Deserializer(serializer.releaseBuffer());

// 从内部缓冲区读取标头
console.log(deserializer.readHeader());

// 从内部缓冲区打印标题值
console.log(serializer.releaseBuffer());
输出结果
C:\home\node>> node readHeader.js
undefined
/home/mayankaggarwal/mysql-test/util.js:18
console.log(deserializer.readHeader());
                        ^
Error: Unable to deserialize cloned data due to invalid or
unsupported version.
   at Object. (/home/node/readHeader .js:18:26)
   atModule._compile(internal/modules/cjs/loader.js:778:30)
   at Object.Module._extensions..js
(internal/modules/cjs/loader.js:789:10)
   atModule.load(internal/modules/cjs/loader.js:653:32)
   at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
   at Function.Module._load
(internal/modules/cjs/loader.js:585:3)
   at Function.Module.runMain
(internal/modules/cjs/loader.js:831:12)
   at startup (internal/bootstrap/node.js:283:19)
   at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)