Challenge - 5 Problems
Express Router Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate2:00remaining
What is the output when accessing the '/users' route?
Given the Express router code below, what response will the server send when a client requests the '/users' path?
Express
const express = require('express'); const router = express.Router(); router.get('/users', (req, res) => { res.send('User list'); }); module.exports = router;
Attempts:
2 left
💡 Hint
Check the route path and the response sent inside the router.get handler.
✗ Incorrect
The router defines a GET handler for '/users' that sends the string 'User list' as the response.
📝 Syntax
intermediate2:00remaining
Which option correctly creates and exports an Express router?
Select the code snippet that correctly creates an Express router and exports it for use in other files.
Attempts:
2 left
💡 Hint
Remember to call express.Router() as a function to create the router instance.
✗ Incorrect
Option B correctly calls express.Router() to create a router instance and exports it. Option B calls express() which creates an app, not a router. Option B misses parentheses after Router. Option B incorrectly uses 'new' with Router.
🔧 Debug
advanced2:00remaining
Why does this Express router code cause a runtime error?
Examine the code below. Why will this cause an error when the server runs?
Express
const express = require('express'); const router = express.Router(); router.get('/items', (req, res) => { res.send(items); }); module.exports = router;
Attempts:
2 left
💡 Hint
Check if all variables used inside the route handler are declared.
✗ Incorrect
The code tries to send 'items' but this variable is not declared anywhere, causing a ReferenceError at runtime.
❓ state_output
advanced2:00remaining
What is the response after adding middleware to the router?
Consider this router code with middleware. What will the client receive when requesting '/data'?
Express
const express = require('express'); const router = express.Router(); router.use((req, res, next) => { req.customData = 'Hello'; next(); }); router.get('/data', (req, res) => { res.send(req.customData); }); module.exports = router;
Attempts:
2 left
💡 Hint
Middleware adds a property to the request object before the route handler runs.
✗ Incorrect
The middleware sets req.customData to 'Hello'. The route handler sends this value, so the client receives 'Hello'.
🧠 Conceptual
expert3:00remaining
What happens if you mount the same router twice with different base paths?
If you have a router with a route '/info' and you mount it on an Express app at '/a' and '/b', what URLs will respond with the router's '/info' handler?
Express
const express = require('express'); const app = express(); const router = express.Router(); router.get('/info', (req, res) => { res.send('Info page'); }); app.use('/a', router); app.use('/b', router);
Attempts:
2 left
💡 Hint
Think about how Express mounts routers at different base paths.
✗ Incorrect
Mounting the same router at '/a' and '/b' means its routes are accessible under both base paths. So '/a/info' and '/b/info' both work.