Bird
Raised Fist0
Node.jsframework~5 mins

Reading and writing buffer data in Node.js - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a Buffer in Node.js?
A Buffer is a special object in Node.js used to store raw binary data. It allows you to work with streams of bytes directly, like reading files or network data.
Click to reveal answer
beginner
How do you create a Buffer from a string in Node.js?
Use Buffer.from('your string') to create a Buffer containing the bytes of the string.
Click to reveal answer
intermediate
Which method reads an unsigned 8-bit integer from a Buffer at a specific offset?
The method buffer.readUInt8(offset) reads an unsigned 8-bit integer from the Buffer at the given offset.
Click to reveal answer
intermediate
How do you write a 16-bit unsigned integer to a Buffer at a specific offset?
Use buffer.writeUInt16LE(value, offset) to write a 16-bit unsigned integer in little-endian format at the offset.
Click to reveal answer
advanced
Why is it important to specify endianness when reading or writing multi-byte values in a Buffer?
Endianness determines byte order. Specifying it ensures data is interpreted correctly across different systems, preventing errors in reading or writing multi-byte numbers.
Click to reveal answer
Which method creates a Buffer from a string in Node.js?
Anew Buffer('text')
BBuffer.from('text')
CBuffer.create('text')
DBuffer.string('text')
What does buffer.readUInt8(0) return?
AAn unsigned 8-bit integer from the start of the buffer
BA signed 8-bit integer from the start of the buffer
CA string from the buffer
DThe length of the buffer
Which method writes a 32-bit unsigned integer in little-endian format to a Buffer?
Abuffer.writeUInt32LE(value, offset)
Bbuffer.writeUInt32BE(value, offset)
Cbuffer.writeInt32LE(value, offset)
Dbuffer.writeInt32BE(value, offset)
What is the default encoding when converting a Buffer to a string using buffer.toString()?
Ahex
Bascii
Cbase64
Dutf8
Why should you be careful with the offset when reading or writing Buffer data?
AOffset controls the Buffer size
BBecause offset changes the encoding
CTo avoid reading or writing outside the Buffer bounds causing errors
DOffset is only used for strings
Explain how to read and write numeric data using Node.js Buffers. Include how to handle byte order.
Think about how bytes are stored and accessed in memory.
You got /4 concepts.
    Describe how to convert a string to a Buffer and back to a string in Node.js.
    Consider how text is stored as bytes.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the primary purpose of a Buffer in Node.js?
      easy
      A. To manage HTTP requests automatically
      B. To store JavaScript objects in memory
      C. To hold raw binary data for reading and writing
      D. To format strings for display in the console

      Solution

      1. Step 1: Understand what Buffer stores

        A Buffer is designed to hold raw binary data, not objects or formatted strings.
      2. Step 2: Identify Buffer's main use

        Buffers allow reading and writing bytes directly, useful for binary data handling.
      3. Final Answer:

        To hold raw binary data for reading and writing -> Option C
      4. Quick Check:

        Buffer = raw binary data [OK]
      Hint: Buffers store raw bytes, not objects or formatted text [OK]
      Common Mistakes:
      • Thinking Buffer stores JavaScript objects
      • Confusing Buffer with string formatting tools
      • Assuming Buffer manages HTTP requests
      2. Which of the following is the correct way to create a Buffer of size 5 bytes filled with zeros?
      easy
      A. Buffer.new(5)
      B. Buffer.alloc(5)
      C. new Buffer(5, 0)
      D. Buffer.create(5)

      Solution

      1. Step 1: Recall Buffer creation methods

        In modern Node.js, Buffer.alloc(size) creates a zero-filled buffer.
      2. Step 2: Check other options

        Buffer.new and Buffer.create do not exist; new Buffer() is deprecated and unsafe.
      3. Final Answer:

        Buffer.alloc(5) -> Option B
      4. Quick Check:

        Use Buffer.alloc for safe zero-filled buffers [OK]
      Hint: Use Buffer.alloc(size) for zero-filled buffers [OK]
      Common Mistakes:
      • Using deprecated new Buffer() constructor
      • Trying non-existent Buffer.new or Buffer.create methods
      • Not initializing buffer contents
      3. What will be the output of this code?
      const buf = Buffer.from('abc');
      console.log(buf[1]);
      medium
      A. 98
      B. b
      C. 1
      D. undefined

      Solution

      1. Step 1: Understand Buffer.from and indexing

        Buffer.from('abc') creates a buffer with ASCII codes of 'a', 'b', 'c'. Index 1 is 'b'.
      2. Step 2: Check what buf[1] returns

        Buffer indexes return the byte value (number), not the character. 'b' ASCII code is 98.
      3. Final Answer:

        98 -> Option A
      4. Quick Check:

        Buffer index returns byte code, not character [OK]
      Hint: Buffer indexes return byte numbers, not characters [OK]
      Common Mistakes:
      • Expecting character instead of ASCII code
      • Confusing index with string position
      • Assuming buf[1] returns a string
      4. Identify the error in this code snippet:
      const buf = Buffer.alloc(3);
      buf.write('hello');
      console.log(buf.toString());
      medium
      A. Buffer size is too small for the string 'hello'
      B. Buffer.alloc cannot be used with write method
      C. toString() cannot be called on a Buffer
      D. write method requires encoding argument

      Solution

      1. Step 1: Check buffer size vs string length

        Buffer.alloc(3) creates 3 bytes, but 'hello' needs 5 bytes to store fully.
      2. Step 2: Understand write behavior

        write writes as many bytes as fit; here it truncates 'hello' to 'hel'.
      3. Final Answer:

        Buffer size is too small for the string 'hello' -> Option A
      4. Quick Check:

        Buffer too small truncates written string [OK]
      Hint: Buffer must be large enough to hold full string [OK]
      Common Mistakes:
      • Thinking write needs encoding argument always
      • Assuming toString() is invalid on Buffer
      • Believing Buffer.alloc disallows write
      5. You want to copy the first 4 bytes from one buffer src to another buffer dest starting at index 2 in dest. Which code correctly does this?
      hard
      A. dest.copy(src, 2, 0, 4);
      B. dest.copy(src, 0, 2, 6);
      C. src.copy(dest, 0, 2, 6);
      D. src.copy(dest, 2, 0, 4);

      Solution

      1. Step 1: Understand Buffer.copy parameters

        The method is source.copy(target, targetStart, sourceStart, sourceEnd).
      2. Step 2: Match parameters to requirement

        Copy from src starting at 0 to 4 bytes, into dest starting at index 2.
      3. Final Answer:

        src.copy(dest, 2, 0, 4); -> Option D
      4. Quick Check:

        source.copy(target, targetStart, sourceStart, sourceEnd) [OK]
      Hint: source.copy(target, targetStart, sourceStart, sourceEnd) [OK]
      Common Mistakes:
      • Swapping source and target buffers
      • Mixing up start and end indexes
      • Using copy on wrong buffer object