Bird
Raised Fist0
NextJSframework~20 mins

Edge runtime vs Node.js runtime in NextJS - Practice Questions

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Edge vs Node.js Runtime Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Differences in API support between Edge and Node.js runtimes
Which of the following APIs is NOT supported in the Next.js Edge runtime but works in the Node.js runtime?
AThe Node.js 'fs' module for file system operations
BThe native Fetch API for HTTP requests
CWeb Crypto API for cryptographic functions
DURL and URLSearchParams for URL parsing
Attempts:
2 left
💡 Hint
Think about which APIs require access to the server's file system.
❓ component_behavior
intermediate
2:00remaining
Behavior of environment variables in Edge vs Node.js runtimes
In Next.js, how do environment variables behave differently when using Edge runtime compared to Node.js runtime?
AEdge runtime inlines all environment variables at build time, unlike Node.js
BEdge runtime can dynamically read environment variables at runtime
CNode.js runtime does not support environment variables
DEdge runtime supports all environment variables at runtime like Node.js
Attempts:
2 left
💡 Hint
Consider when and how environment variables are injected in Edge runtime.
📝 Syntax
advanced
2:00remaining
Correct way to specify Edge runtime in Next.js API route
Which code snippet correctly configures a Next.js API route to use the Edge runtime?
A
export const config = { runtime: 'edge-runtime' };
export default function handler(req) { return new Response('Hello from Edge'); }
B
export const config = { runtime: 'server' };
export default function handler(req) { return new Response('Hello from Edge'); }
C
export const config = { runtime: 'edge' };
export default function handler(req) { return new Response('Hello from Edge'); }
D
export const config = { runtime: 'nodejs' };
export default function handler(req) { return new Response('Hello from Edge'); }
Attempts:
2 left
💡 Hint
Check the exact string used to specify Edge runtime in Next.js config.
❓ state_output
advanced
2:00remaining
Output difference when using Node.js-only modules in Edge runtime
What happens if you import the 'crypto' module from Node.js in a Next.js Edge runtime API route and try to use it?
NextJS
import crypto from 'crypto';

export const config = { runtime: 'edge' };

export default function handler() {
  const id = crypto.randomUUID();
  return new Response(id);
}
AThrows a TypeError because 'randomUUID' is not a function
BThrows a ReferenceError because 'crypto' is undefined
CThe code runs and returns a UUID string
DThrows a runtime error because Node.js modules are not supported in Edge runtime
Attempts:
2 left
💡 Hint
Think about module compatibility in Edge runtime.
❓ lifecycle
expert
2:00remaining
Impact of runtime choice on cold start latency in Next.js API routes
How does choosing Edge runtime over Node.js runtime affect cold start latency for Next.js API routes deployed on Vercel?
ANode.js runtime has lower cold start latency because it uses persistent server processes
BEdge runtime generally has lower cold start latency due to lightweight serverless environment
CBoth runtimes have identical cold start latency on Vercel
DEdge runtime has higher cold start latency because it compiles code on every request
Attempts:
2 left
💡 Hint
Consider how serverless environments differ in startup speed.

Practice

(1/5)
1. What is the main advantage of using the Edge runtime in Next.js?
easy
A. It runs code closer to users for faster response times.
B. It supports all Node.js modules without restrictions.
C. It allows using server-side rendering only on the server.
D. It automatically caches all API responses indefinitely.

Solution

  1. Step 1: Understand Edge runtime purpose

    The Edge runtime runs code on servers geographically closer to users, reducing latency.
  2. Step 2: Compare with Node.js runtime

    Unlike Node.js runtime, Edge runtime focuses on speed by running near users but has some limitations on Node features.
  3. Final Answer:

    It runs code closer to users for faster response times. -> Option A
  4. Quick Check:

    Edge runtime = faster user response [OK]
Hint: Edge runtime means code runs near users for speed [OK]
Common Mistakes:
  • Thinking Edge runtime supports all Node.js modules
  • Confusing Edge runtime with full Node.js capabilities
  • Assuming Edge runtime caches all responses automatically
2. Which is the correct way to set the runtime to Edge in a Next.js API route?
easy
A. export const runtime = 'nodejs';
B. const runtime = 'edge';
C. export default runtime = 'edge';
D. export const runtime = 'edge';

Solution

  1. Step 1: Recall syntax for setting runtime

    Next.js requires exporting a constant named runtime with value 'edge' or 'nodejs'.
  2. Step 2: Identify correct export statement

    The correct syntax is export const runtime = 'edge'; to set Edge runtime.
  3. Final Answer:

    export const runtime = 'edge'; -> Option D
  4. Quick Check:

    Use export const runtime = 'edge' [OK]
Hint: Use export const runtime = 'edge' to set Edge runtime [OK]
Common Mistakes:
  • Using default export instead of named export
  • Assigning runtime without export
  • Setting runtime to 'nodejs' when Edge is needed
3. Given this Next.js API route code, what will be the runtime environment if export const runtime = 'edge'; is set?
export const runtime = 'edge';
export default function handler(req) {
  return new Response('Hello from Edge!');
}
medium
A. Node.js runtime with full Node APIs
B. Edge runtime with limited Node APIs
C. Client-side runtime in the browser
D. Serverless function with no runtime

Solution

  1. Step 1: Check the runtime export

    The code explicitly sets runtime = 'edge', so it uses the Edge runtime environment.
  2. Step 2: Understand Edge runtime features

    Edge runtime supports limited Node.js APIs and runs close to users for speed, unlike full Node.js runtime.
  3. Final Answer:

    Edge runtime with limited Node APIs -> Option B
  4. Quick Check:

    runtime = 'edge' means Edge runtime [OK]
Hint: runtime = 'edge' means limited Node APIs near users [OK]
Common Mistakes:
  • Assuming full Node.js APIs are available in Edge runtime
  • Confusing Edge runtime with client-side code
  • Thinking no runtime is used
4. Identify the error in this Next.js API route code intended to run on Edge runtime:
export const runtime = 'edge';
import fs from 'fs';
export default function handler(req) {
  const data = fs.readFileSync('/data.txt', 'utf8');
  return new Response(data);
}
medium
A. Edge runtime does not support importing 'fs' module.
B. Missing async keyword for handler function.
C. Response constructor is used incorrectly.
D. The runtime should be set to 'nodejs' instead.

Solution

  1. Step 1: Check module usage in Edge runtime

    Edge runtime does not support Node.js built-in modules like 'fs' because it runs in a restricted environment.
  2. Step 2: Identify the error cause

    Importing and using 'fs' causes a runtime error in Edge runtime; this is not allowed.
  3. Final Answer:

    Edge runtime does not support importing 'fs' module. -> Option A
  4. Quick Check:

    Edge runtime forbids 'fs' module [OK]
Hint: Edge runtime forbids Node built-in modules like fs [OK]
Common Mistakes:
  • Thinking async is required here
  • Believing Response usage is wrong
  • Assuming runtime setting is incorrect
5. You want to create a Next.js API route that uses crypto for hashing and runs as close to users as possible. Which runtime should you choose and why?
hard
A. Node.js runtime, because it supports all Node modules including crypto.
B. Node.js runtime, because Edge runtime does not support any crypto functions.
C. Edge runtime, because it supports Web Crypto API and runs near users.
D. Edge runtime, but you must polyfill crypto manually.

Solution

  1. Step 1: Understand crypto support in runtimes

    Edge runtime supports the Web Crypto API natively, which can be used for hashing, while Node.js runtime supports Node's crypto module.
  2. Step 2: Choose runtime for proximity and crypto

    Since you want to run close to users and use crypto, Edge runtime is best because it supports Web Crypto and runs near users.
  3. Final Answer:

    Edge runtime, because it supports Web Crypto API and runs near users. -> Option C
  4. Quick Check:

    Edge runtime + Web Crypto API = best choice [OK]
Hint: Edge runtime supports Web Crypto API and is faster globally [OK]
Common Mistakes:
  • Assuming Edge runtime lacks any crypto support
  • Choosing Node.js runtime despite wanting low latency
  • Thinking manual polyfill is needed for crypto in Edge
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