The Edge runtime runs your code in a lightweight environment close to users worldwide.
Node.js runtime supports more features but runs on traditional servers, which may be slower for global users.
Choose Edge runtime for speed and Node.js runtime for full Node features.
Summary
Edge runtime runs code near users for faster responses.
Node.js runtime supports full Node features but may be slower globally.
Set the runtime using export const runtime = 'edge' or 'nodejs'.
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
Step 1: Understand Edge runtime purpose
The Edge runtime runs code on servers geographically closer to users, reducing latency.
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.
Final Answer:
It runs code closer to users for faster response times. -> Option A
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
Step 1: Recall syntax for setting runtime
Next.js requires exporting a constant named runtime with value 'edge' or 'nodejs'.
Step 2: Identify correct export statement
The correct syntax is export const runtime = 'edge'; to set Edge runtime.
Final Answer:
export const runtime = 'edge'; -> Option D
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
Step 1: Check the runtime export
The code explicitly sets runtime = 'edge', so it uses the Edge runtime environment.
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.
Final Answer:
Edge runtime with limited Node APIs -> Option B
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
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.
Step 2: Identify the error cause
Importing and using 'fs' causes a runtime error in Edge runtime; this is not allowed.
Final Answer:
Edge runtime does not support importing 'fs' module. -> Option A
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
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.
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.
Final Answer:
Edge runtime, because it supports Web Crypto API and runs near users. -> Option C
Quick Check:
Edge runtime + Web Crypto API = best choice [OK]
Hint: Edge runtime supports Web Crypto API and is faster globally [OK]