Bird
Raised Fist0
Denoframework~20 mins

Deno vs Node.js comparison - Practice Questions

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Deno vs Node.js Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Key difference in module import style
Which statement best describes how Deno handles module imports compared to Node.js?
ANode.js supports importing modules only via URLs, whereas Deno uses local files exclusively.
BDeno requires a package.json file for all projects, but Node.js does not.
CDeno uses URL-based imports directly without a package manager, while Node.js relies on npm and local node_modules folders.
DBoth Deno and Node.js use the same import style and package management system.
Attempts:
2 left
💡 Hint
Think about how each environment finds and loads external code.
❓ component_behavior
intermediate
2:00remaining
Permission system behavior
What happens when you run a Deno script that tries to read a file without granting read permission?
Deno
deno run script.ts
// script.ts tries to read a local file
AThe script runs normally and reads the file without any prompt.
BDeno throws a runtime error denying file access due to missing read permission.
CThe script automatically requests permission from the user during execution.
DDeno ignores permissions and allows all file operations by default.
Attempts:
2 left
💡 Hint
Consider Deno's security model compared to Node.js.
📝 Syntax
advanced
2:00remaining
Correct way to run a Deno script with network access
Which command correctly runs a Deno script named app.ts with permission to access the network?
Adeno run --allow-net app.ts
Bdeno run --net app.ts
Cdeno run --allow-network app.ts
Ddeno run --network app.ts
Attempts:
2 left
💡 Hint
Check the exact permission flag syntax Deno requires.
🔧 Debug
advanced
2:00remaining
Identify the cause of a runtime error in Deno
Given this Deno script, why does it throw a permission error when run with deno run script.ts?
const data = await Deno.readTextFile('info.txt');
console.log(data);
Deno
const data = await Deno.readTextFile('info.txt');
console.log(data);
AThe script uses an unsupported API for reading files in Deno.
BThe file 'info.txt' does not exist in the directory.
CThe await keyword cannot be used at the top level in Deno.
DThe script lacks the --allow-read flag to permit file reading.
Attempts:
2 left
💡 Hint
Think about Deno's permission system and command flags.
❓ state_output
expert
3:00remaining
Output difference between Deno and Node.js for ES module import
Consider this ES module import code in Deno and Node.js environments:
import { serve } from "https://deno.land/std@0.177.0/http/server.ts";

serve(() => new Response("Hello"));
What is the expected behavior when running this code in Deno vs Node.js without additional setup?
Deno
import { serve } from "https://deno.land/std@0.177.0/http/server.ts";

serve(() => new Response("Hello"));
ADeno runs the code successfully serving HTTP; Node.js throws a syntax or module resolution error.
BBoth Deno and Node.js run the code successfully without errors.
CBoth environments throw errors due to missing package.json.
DNode.js runs the code successfully; Deno throws a network permission error.
Attempts:
2 left
💡 Hint
Think about how each environment handles URL imports and permissions.

Practice

(1/5)
1. Which of the following is a key security feature of Deno compared to Node.js?
easy
A. Node.js has built-in sandboxing for all scripts.
B. Deno allows all file and network access without restrictions.
C. Deno runs code with restricted permissions by default.
D. Node.js requires explicit permission flags for network access.

Solution

  1. Step 1: Understand Deno's default security model

    Deno runs scripts with no file, network, or environment access unless explicitly allowed.
  2. Step 2: Compare with Node.js default behavior

    Node.js allows full access by default without permission restrictions.
  3. Final Answer:

    Deno runs code with restricted permissions by default. -> Option C
  4. Quick Check:

    Deno security = restricted by default [OK]
Hint: Remember: Deno locks down access unless you say otherwise [OK]
Common Mistakes:
  • Thinking Node.js restricts permissions by default
  • Assuming Deno allows all access without flags
  • Confusing Node.js and Deno security models
2. Which syntax correctly runs a Deno script with network access permission?
easy
A. deno run --allow-net script.ts
B. node run --allow-net script.ts
C. deno run script.ts --allow-net
D. node run script.ts --allow-net

Solution

  1. Step 1: Recall Deno command structure

    Deno uses deno run followed by permission flags before the script name.
  2. Step 2: Identify correct flag placement

    The flag --allow-net must come before the script file name.
  3. Final Answer:

    deno run --allow-net script.ts -> Option A
  4. Quick Check:

    Deno run + flags before script [OK]
Hint: Flags come before script name in Deno commands [OK]
Common Mistakes:
  • Placing flags after the script name
  • Using Node.js commands for Deno
  • Mixing up 'node' and 'deno' commands
3. What will the following Deno code output if run without any permission flags?
console.log("Reading file...");
const data = await Deno.readTextFile("example.txt");
console.log(data);
medium
A. PermissionDenied: read access to 'example.txt' is not allowed
B. Contents of example.txt printed
C. SyntaxError due to await outside async function
D. FileNotFoundError if example.txt does not exist

Solution

  1. Step 1: Check permission requirements for file reading

    Deno requires explicit --allow-read permission to read files.
  2. Step 2: Analyze code run without permissions

    Running without --allow-read causes a PermissionDenied error when reading a file.
  3. Final Answer:

    PermissionDenied: read access to 'example.txt' is not allowed -> Option A
  4. Quick Check:

    Deno file read needs permission [OK]
Hint: Deno blocks file reads without --allow-read flag [OK]
Common Mistakes:
  • Assuming file reads work without permission
  • Confusing syntax errors with permission errors
  • Ignoring Deno's security model
4. Identify the error in this Node.js code snippet compared to Deno's approach:
import { serve } from "https://deno.land/std/http/server.ts";
serve(() => new Response("Hello"));
medium
A. Node.js needs the 'serve' function to be called with 'new'.
B. Node.js cannot import modules directly from URLs like Deno.
C. Node.js does not support async functions.
D. Node.js requires 'require' instead of 'import'.

Solution

  1. Step 1: Understand module import differences

    Deno supports direct URL imports; Node.js does not support this natively.
  2. Step 2: Identify Node.js module system

    Node.js uses local files or npm packages, not direct URL imports.
  3. Final Answer:

    Node.js cannot import modules directly from URLs like Deno. -> Option B
  4. Quick Check:

    Node.js import URL support = no [OK]
Hint: Node.js needs local or npm modules, not URL imports [OK]
Common Mistakes:
  • Thinking Node.js supports URL imports
  • Confusing import syntax with async support
  • Assuming 'new' is needed for serve function
5. You want to build a secure web server that only allows network access and no file system access. Which setup best fits this requirement using Deno and Node.js?
hard
A. Use Node.js with node --allow-net server.js to restrict file access.
B. Use Node.js with node server.js and rely on default security.
C. Use Deno with deno run server.ts without flags to allow all access.
D. Use Deno with deno run --allow-net server.ts to restrict file access.

Solution

  1. Step 1: Identify security needs

    The server should allow only network access, no file system access.
  2. Step 2: Compare Deno and Node.js permission models

    Deno allows fine-grained permission control via flags; Node.js does not restrict by default.
  3. Step 3: Choose correct command

    deno run --allow-net server.ts grants network access only, blocking file system access.
  4. Final Answer:

    Use Deno with deno run --allow-net server.ts to restrict file access. -> Option D
  5. Quick Check:

    Deno permission flags enable precise access control [OK]
Hint: Deno flags control access; Node.js lacks default restrictions [OK]
Common Mistakes:
  • Assuming Node.js restricts access by default
  • Using Deno without flags allows no permissions
  • Thinking Node.js supports --allow-net flag
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