Bird
Raised Fist0
Node.jsframework~10 mins

Buffer allocation and encoding in Node.js - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to allocate a buffer of 10 bytes.

Node.js
const buf = Buffer.[1](10);
Drag options to blanks, or click blank then click option'
Aalloc
Bfrom
Cnew
Dcreate
Attempts:
3 left
💡 Hint
Common Mistakes
Using Buffer.from instead of Buffer.alloc
Trying to use 'new Buffer' which is deprecated
2fill in blank
medium

Complete the code to create a buffer from the string 'hello' using UTF-8 encoding.

Node.js
const buf = Buffer.from('hello', '[1]');
Drag options to blanks, or click blank then click option'
Abase64
Butf8
Cascii
Dhex
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'ascii' which only supports basic English characters
Using 'base64' which is for encoded binary data, not plain text
3fill in blank
hard

Fix the error in the code to convert a buffer to a string with base64 encoding.

Node.js
const str = buf.toString('[1]');
Drag options to blanks, or click blank then click option'
Autf8
Bhex
Cbase64
Dascii
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'utf8' instead of 'base64' for encoding
Using 'hex' which produces hexadecimal string, not base64
4fill in blank
hard

Fill both blanks to create a buffer from a hex string and convert it back to a utf8 string.

Node.js
const buf = Buffer.[1]('68656c6c6f', '[2]');
const str = buf.toString('utf8');
Drag options to blanks, or click blank then click option'
Afrom
Balloc
Chex
Dutf8
Attempts:
3 left
💡 Hint
Common Mistakes
Using Buffer.alloc instead of Buffer.from
Using 'utf8' as input encoding for a hex string
5fill in blank
hard

Fill all three blanks to allocate a buffer, write a string with utf8 encoding, and convert it to base64.

Node.js
const buf = Buffer.[1](6);
buf.write('hello', 0, [2], '[3]');
const base64 = buf.toString('base64');
Drag options to blanks, or click blank then click option'
Aalloc
B5
Cutf8
Dfrom
Attempts:
3 left
💡 Hint
Common Mistakes
Using Buffer.from instead of Buffer.alloc for fixed size buffer
Incorrect length parameter in write method
Wrong encoding name in write method

Practice

(1/5)
1. What does Buffer.alloc(5) do in Node.js?
easy
A. Creates a buffer of length 5 filled with zeros
B. Creates a buffer of length 5 filled with random data
C. Creates a buffer from a string of length 5
D. Allocates memory but does not initialize the buffer

Solution

  1. Step 1: Understand Buffer.alloc behavior

    Buffer.alloc(size) creates a buffer of the given size and fills it with zeros for safety.
  2. Step 2: Apply to size 5

    Calling Buffer.alloc(5) creates a buffer of length 5 filled with zeros.
  3. Final Answer:

    Creates a buffer of length 5 filled with zeros -> Option A
  4. Quick Check:

    Buffer.alloc(5) = zero-filled buffer [OK]
Hint: Buffer.alloc always zero-fills the buffer size [OK]
Common Mistakes:
  • Thinking Buffer.alloc fills with random data
  • Confusing Buffer.alloc with Buffer.from
  • Assuming buffer is uninitialized
2. Which of the following is the correct syntax to create a buffer from the string 'hello' using UTF-8 encoding?
easy
A. Buffer.alloc('hello', 'utf8')
B. Buffer.create('hello', 'utf8')
C. new Buffer('hello', 'utf8')
D. Buffer.from('hello', 'utf8')

Solution

  1. Step 1: Identify correct Buffer creation method

    In modern Node.js, Buffer.from() creates a buffer from a string with encoding.
  2. Step 2: Check syntax correctness

    Buffer.from('hello', 'utf8') is correct syntax; Buffer.alloc does not accept string input, and Buffer.create does not exist. new Buffer() is deprecated.
  3. Final Answer:

    Buffer.from('hello', 'utf8') -> Option D
  4. Quick Check:

    Use Buffer.from for string buffers [OK]
Hint: Use Buffer.from for strings, Buffer.alloc for size [OK]
Common Mistakes:
  • Using Buffer.alloc with string input
  • Using deprecated new Buffer()
  • Using non-existent Buffer.create()
3. What will be the output of the following code?
const buf = Buffer.from('abc', 'utf8');
console.log(buf.length);
medium
A. 3
B. 6
C. 1
D. Error

Solution

  1. Step 1: Understand Buffer.from with UTF-8 string

    The string 'abc' has 3 characters, each encoded as 1 byte in UTF-8.
  2. Step 2: Check buffer length property

    The buffer length equals the number of bytes, so buf.length is 3.
  3. Final Answer:

    3 -> Option A
  4. Quick Check:

    UTF-8 'abc' length = 3 bytes [OK]
Hint: Buffer length equals byte count of string encoding [OK]
Common Mistakes:
  • Assuming length is character count for multi-byte chars
  • Expecting length to be string length property
  • Confusing bytes with characters
4. Identify the error in this code snippet:
const buf = Buffer.alloc(5, 'abc');
console.log(buf.toString());
medium
A. Buffer.alloc cannot take a string as fill
B. toString() is not a Buffer method
C. No error, prints 'abcab'
D. Buffer.alloc size must be a string

Solution

  1. Step 1: Check Buffer.alloc parameters

    Buffer.alloc(size, fill) accepts a size and a fill value. The fill can be a string, which repeats to fill the buffer.
  2. Step 2: Understand fill behavior and toString()

    Filling 5 bytes with 'abc' repeats 'abcab'. toString() converts buffer back to string.
  3. Final Answer:

    No error, prints 'abcab' -> Option C
  4. Quick Check:

    Buffer.alloc fills string repeatedly [OK]
Hint: Buffer.alloc fills string repeatedly if fill is string [OK]
Common Mistakes:
  • Thinking Buffer.alloc fill cannot be string
  • Assuming toString() is invalid on Buffer
  • Expecting error due to fill length mismatch
5. You want to create a buffer from the string 'café' and then convert it back to a string. Which encoding should you use to preserve the accented character correctly?
hard
A. 'ascii'
B. 'utf8'
C. 'base64'
D. 'hex'

Solution

  1. Step 1: Understand character encoding for accented characters

    ASCII encoding cannot represent accented characters like 'é'. UTF-8 supports all Unicode characters including accented ones.
  2. Step 2: Choose encoding for buffer creation and conversion

    Using 'utf8' ensures the accented character is preserved when converting to and from buffer.
  3. Final Answer:

    'utf8' -> Option B
  4. Quick Check:

    Use UTF-8 for accented characters [OK]
Hint: Use UTF-8 to handle accented characters correctly [OK]
Common Mistakes:
  • Using ASCII which drops accents
  • Using base64 or hex which are encoding formats, not text encodings
  • Confusing base64 with UTF-8