Bird
Raised Fist0
Denoframework~20 mins

Node.js built-in module support in Deno - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Node.js Built-in Module Mastery in Deno
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the output of this Deno code using Node.js 'path' module?
Consider this Deno script that imports the Node.js 'path' module. What will it print?
Deno
import path from 'node:path';
console.log(path.basename('/foo/bar/baz.txt'));
A'baz.txt'
B'/foo/bar/baz.txt'
C'baz'
DSyntaxError: Cannot find module 'node:path'
Attempts:
2 left
💡 Hint
Think about what the basename function returns from a file path.
📝 Syntax
intermediate
1:30remaining
Which import statement correctly loads the Node.js 'fs' module in Deno?
Deno supports Node.js built-in modules with special import paths. Which option correctly imports the 'fs' module?
Aconst fs = require('fs');
Bimport fs from 'node:fs';
Cimport * as fs from 'node_fs';
Dimport fs from 'fs';
Attempts:
2 left
💡 Hint
Deno uses the 'node:' prefix for Node.js built-in modules.
🔧 Debug
advanced
2:30remaining
Why does this Deno code throw an error when importing 'node:crypto'?
This code throws an error when run in Deno. What is the cause?
Deno
import crypto from 'node:crypto';
console.log(crypto.randomUUID());
AThe import path should be 'crypto' without the 'node:' prefix.
BThe 'randomUUID' method does not exist in the 'crypto' module.
CDeno does not support the 'node:crypto' module by default without enabling compatibility flags.
DThe code is missing an async function wrapper.
Attempts:
2 left
💡 Hint
Check Deno's Node.js compatibility support and flags.
❓ state_output
advanced
2:00remaining
What is the output of this Deno script using 'node:events' module?
Analyze the output of this code snippet:
Deno
import { EventEmitter } from 'node:events';
const emitter = new EventEmitter();
emitter.on('greet', (name) => console.log(`Hello, ${name}!`));
emitter.emit('greet', 'Alice');
AHello, Alice!
Bgreet Alice
CError: EventEmitter is not a constructor
DNo output
Attempts:
2 left
💡 Hint
EventEmitter triggers the listener when 'emit' is called.
🧠 Conceptual
expert
3:00remaining
Which statement about Node.js built-in module support in Deno is TRUE?
Select the correct statement about how Deno supports Node.js built-in modules.
ADeno fully supports all Node.js built-in modules natively without any flags or compatibility layers.
BDeno does not support Node.js built-in modules at all.
CDeno requires rewriting Node.js built-in modules in TypeScript to use them.
DDeno supports Node.js built-in modules only when imported with the 'node:' prefix and with compatibility enabled.
Attempts:
2 left
💡 Hint
Think about Deno's approach to Node.js compatibility.

Practice

(1/5)
1. What is the correct way to import the Node.js built-in path module in Deno?
easy
A. import * as path from "deno_path";
B. import path from "path";
C. import { path } from "deno:path";
D. import path from "node:path";

Solution

  1. Step 1: Understand Deno's Node.js module import syntax

    Deno uses the "node:" prefix to import Node.js built-in modules.
  2. Step 2: Apply correct import statement for path

    The correct import is import path from "node:path"; to access Node.js path module in Deno.
  3. Final Answer:

    import path from "node:path"; -> Option D
  4. Quick Check:

    Node.js built-in modules use "node:" prefix in Deno [OK]
Hint: Use "node:" prefix to import Node.js built-ins in Deno [OK]
Common Mistakes:
  • Omitting the "node:" prefix
  • Using "deno:" prefix instead
  • Trying to import from "path" without prefix
  • Using incorrect module names
2. Which of the following is the correct syntax to import the Node.js fs module in Deno?
easy
A. import * as fs from "node:fs";
B. import { fs } from "node:fs";
C. import fs from "fs";
D. import fs from "deno:fs";

Solution

  1. Step 1: Recall import style for Node.js modules in Deno

    Deno requires the "node:" prefix and supports namespace import for modules like fs.
  2. Step 2: Choose correct import syntax for fs

    The correct syntax is import * as fs from "node:fs"; to import all fs exports as a namespace.
  3. Final Answer:

    import * as fs from "node:fs"; -> Option A
  4. Quick Check:

    Namespace import with "node:" prefix is correct [OK]
Hint: Use namespace import with "node:" prefix for modules like fs [OK]
Common Mistakes:
  • Using default import for modules that export multiple members
  • Omitting the "node:" prefix
  • Trying to destructure import incorrectly
  • Using "deno:" prefix
3. What will be the output of the following Deno code snippet?
import { join } from "node:path";
const fullPath = join("/home", "user", "docs");
console.log(fullPath);
medium
A. /home\user\docs
B. /home/user/docs
C. home/user/docs
D. Error: Module not found

Solution

  1. Step 1: Understand join from Node.js path module

    The join function combines path segments using the correct separator for the OS.
  2. Step 2: Analyze the given path segments

    Segments "/home", "user", "docs" joined on Unix-like OS produce "/home/user/docs".
  3. Final Answer:

    /home/user/docs -> Option B
  4. Quick Check:

    Node.js path.join joins segments with OS separator [OK]
Hint: Node.js path.join joins paths with OS-specific separator [OK]
Common Mistakes:
  • Assuming Windows separator on Unix
  • Expecting error due to import
  • Confusing join with concat
  • Ignoring leading slash in first segment
4. Identify the error in this Deno code importing Node.js buffer module:
import { Buffer } from "buffer";
const buf = Buffer.from("hello");
console.log(buf.toString());
medium
A. Missing "node:" prefix in import path
B. Buffer is not exported from Node.js buffer module
C. Buffer.from is not a function
D. toString() method does not exist on Buffer

Solution

  1. Step 1: Check import path for Node.js built-in modules in Deno

    Deno requires the "node:" prefix to import Node.js built-in modules like buffer.
  2. Step 2: Identify the missing prefix causing module resolution error

    Importing from "buffer" without "node:" prefix will fail in Deno.
  3. Final Answer:

    Missing "node:" prefix in import path -> Option A
  4. Quick Check:

    Always use "node:" prefix for Node.js built-ins in Deno [OK]
Hint: Always prefix Node.js modules with "node:" in Deno imports [OK]
Common Mistakes:
  • Omitting the "node:" prefix
  • Assuming default import works without prefix
  • Confusing Deno modules with Node.js modules
  • Misunderstanding Buffer API
5. You want to use the Node.js events module in Deno to create an event emitter. Which code snippet correctly imports and uses it?
hard
A. import EventEmitter from "node:events"; const emitter = new EventEmitter();
B. import { EventEmitter } from "node:events"; const emitter = new events.EventEmitter();
C. import * as events from "node:events"; const emitter = new events.EventEmitter();
D. import events from "events"; const emitter = new events.EventEmitter();

Solution

  1. Step 1: Understand how Node.js events module exports EventEmitter

    The events module exports EventEmitter as a named export, so namespace import is common.
  2. Step 2: Check correct import syntax with "node:" prefix and usage

    Using import * as events from "node:events"; then new events.EventEmitter() is correct in Deno.
  3. Final Answer:

    import * as events from "node:events"; const emitter = new events.EventEmitter(); -> Option C
  4. Quick Check:

    Namespace import with "node:" prefix for EventEmitter [OK]
Hint: Use namespace import for EventEmitter from "node:events" [OK]
Common Mistakes:
  • Using default import for EventEmitter
  • Omitting "node:" prefix
  • Importing from "events" without prefix
  • Trying to destructure EventEmitter incorrectly
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard