• Node.js Video Tutorials

NodeJS v8.deserializer.readHeader() Method



The NodeJS v8.deserializer.readHeader() method of class v8.deserializer is used to read and validate the header in the internal buffer.

This method also ensures whether the header contains a valid serialization format version.

This method returns true if the header is valid, else it throws an error.

Syntax

Following is the syntax of the NodeJS v8.deserializer.readHeader() method

v8.deserializer.readHeader()

Parameters

This method does not accept any parameters.

Return Value

This method reads the header of the internal buffer at the deserializer and validates it including the format version. If the header is valid, it returns true. Else it throws an error.

Example

In the following example, firstly, we are trying to write a header to the internal buffer using the v8.serializer.writeHeader() method. Then we are trying to read and validate the header using the v8.deserializer.readHeader() method.

// Importing the v8 module
const v8 = require('v8');

// Defining the serializer object
const serializer = new v8.Serializer();

// Writing the headers to the internal buffer
serializer.writeHeader();

// Defining the deserializer object
const deserializer = new v8.Deserializer(serializer.releaseBuffer());

// Reading the headers from internal buffer
console.log(deserializer.readHeader());

// Printing the header values from internal buffer
console.log(serializer.releaseBuffer());

Output

true
<Buffer >

Example

In this example, we are trying to write a 32-bit unsigned integer instead of heading to the internal buffer. So, the readHeader() method will throw an error.

// Importing the v8 module
const v8 = require('v8');

// Defining the serializer object
const serializer = new v8.Serializer();

// Writing a 32-bit unsigned integer to the internal buffer
serializer.writeUint32(7869);

// Defining the deserializer object
const deserializer = new v8.Deserializer(serializer.releaseBuffer());

// Reading the headers from internal buffer
console.log(deserializer.readHeader());

// Printing the header values from internal buffer
console.log(serializer.releaseBuffer());

Error

Following is the output of the above code −

/home/cg/root/63b66d48bc404/main.js:14
console.log(deserializer.readHeader());
                         ^

Error: Unable to deserialize cloned data due to invalid or unsupported version.
    at Object.<anonymous> (/home/cg/root/63b66d48bc404/main.js:14:26)
    at Module._compile (internal/modules/cjs/loader.js:702:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
    at Module.load (internal/modules/cjs/loader.js:612:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
    at Function.Module._load (internal/modules/cjs/loader.js:543:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
    at startup (internal/bootstrap/node.js:238:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:572:3)
nodejs_v8_module.htm
Advertisements