Confusing handler with styling or compilation tasks
Assuming serve compiles code
2. Which of the following is the correct syntax to start a basic HTTP server in Deno using a handler function named handler?
easy
A. handler.serve();
B. serve(handler);
C. serve = handler();
D. serve->handler();
Solution
Step 1: Recall the serve function usage
In Deno, serve is called with the handler function as an argument to start the server.
Step 2: Check syntax correctness
The correct syntax is serve(handler); which passes the handler function properly.
Final Answer:
serve(handler); -> Option B
Quick Check:
serve called with handler function = C [OK]
Hint: Call serve with handler function name only [OK]
Common Mistakes:
Using assignment instead of function call
Trying to call serve as a method on handler
Using invalid arrow syntax
3. Given this handler code snippet in Deno:
async function handler(req) {
if (req.url.endsWith('/hello')) {
return new Response('Hello World');
}
return new Response('Not Found', { status: 404 });
}
What will the server respond when a request is made to http://localhost:8000/hello?
medium
A. A response with body 'Hello World'
B. A 404 Not Found response
C. An empty response with status 200
D. A runtime error occurs
Solution
Step 1: Analyze the URL condition in handler
The handler checks if the request URL ends with '/hello'. If yes, it returns 'Hello World'.
Step 2: Match the request URL
The request URL is exactly '/hello', so the condition is true and the response is 'Hello World'.
Final Answer:
A response with body 'Hello World' -> Option A
Quick Check:
URL ends with '/hello' returns 'Hello World' = B [OK]
Hint: Check URL endsWith condition to find response [OK]
Common Mistakes:
Assuming 404 because of missing else
Thinking response body is empty
Expecting runtime error from this code
4. Identify the error in this Deno handler code snippet:
async function handler(req) {
if (req.url === '/data') {
const data = await fetch('https://api.example.com/data');
return data.json();
}
return new Response('Not Found', { status: 404 });
}
medium
A. req.url should be req.path
B. Cannot use fetch inside handler
C. Missing await before data.json()
D. Response status 404 is invalid
Solution
Step 1: Understand fetch and response handling
The fetch returns a Response object; calling data.json() returns a Promise that must be awaited.
Step 2: Identify missing await
The code returns data.json() without awaiting it, which returns a Promise instead of a Response object.
Final Answer:
Missing await before data.json() -> Option C
Quick Check:
Await JSON parsing Promise = A [OK]
Hint: Always await async JSON parsing in handlers [OK]
Common Mistakes:
Thinking fetch is disallowed in handlers
Using req.path instead of req.url
Believing 404 status is invalid
5. You want to create a Deno server that fetches user data from an external API only when the request URL is /user. Which handler function correctly fetches the JSON data and returns it as a JSON response?
hard
A. async function handler(req) {
if (req.url.endsWith('/user')) {
const response = await fetch('https://api.example.com/user');
const data = await response.json();
return new Response(JSON.stringify(data), { headers: { 'Content-Type': 'application/json' } });
}
return new Response('Not Found', { status: 404 });
}
B. async function handler(req) {
if (req.url === '/user') {
const data = fetch('https://api.example.com/user').json();
return new Response(data);
}
return new Response('Not Found');
}
C. function handler(req) {
if (req.url === '/user') {
const data = await fetch('https://api.example.com/user').json();
return new Response(JSON.stringify(data));
}
return new Response('Not Found');
}
D. async function handler(req) {
if (req.url.includes('/user')) {
const response = await fetch('https://api.example.com/user');
return response.json();
}
return new Response('Not Found', { status: 404 });
}
Solution
Step 1: Check correct async handling and URL matching
async function handler(req) {
if (req.url.endsWith('/user')) {
const response = await fetch('https://api.example.com/user');
const data = await response.json();
return new Response(JSON.stringify(data), { headers: { 'Content-Type': 'application/json' } });
}
return new Response('Not Found', { status: 404 });
} uses endsWith('/user') to match URL and awaits both fetch and response.json(), which is correct.
Step 2: Verify response formatting
async function handler(req) {
if (req.url.endsWith('/user')) {
const response = await fetch('https://api.example.com/user');
const data = await response.json();
return new Response(JSON.stringify(data), { headers: { 'Content-Type': 'application/json' } });
}
return new Response('Not Found', { status: 404 });
} returns a new Response with JSON string and correct Content-Type header, ensuring proper JSON response.
Final Answer:
Option A correctly fetches and returns JSON data with proper async handling and headers -> Option A
Quick Check:
Await fetch and json, set JSON header = A [OK]
Hint: Await fetch and json, set JSON content-type header [OK]
Common Mistakes:
Not awaiting response.json()
Returning raw Promise instead of Response
Missing Content-Type header for JSON
Using non-async function with await
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.