0
0
Node.jsframework~20 mins

Building custom middleware in Node.js - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Middleware Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
1:30remaining
What is the output of this custom middleware logging request method and URL?
Consider this Express.js middleware that logs the HTTP method and URL of incoming requests. What will be printed to the console when a GET request is made to '/home'?
Node.js
function logRequest(req, res, next) {
  console.log(`${req.method} ${req.url}`);
  next();
}

// Simulated request object
const req = { method: 'GET', url: '/home' };
const res = {};
logRequest(req, res, () => console.log('Next middleware called'));
A/home GET\nNext middleware called
BNext middleware called\nGET /home
CGET /home\nNext middleware called
DGET /home
Attempts:
2 left
💡 Hint
Look at the order of console.log statements and the use of next()
state_output
intermediate
1:30remaining
What is the value of res.locals.user after this middleware runs?
Given this middleware that sets a user object on res.locals, what will be the value of res.locals.user after it executes?
Node.js
function setUser(req, res, next) {
  res.locals.user = { id: 42, name: 'Alice' };
  next();
}

const res = { locals: {} };
setUser({}, res, () => {});
console.log(res.locals.user);
A{}
B{ id: 42, name: 'Alice' }
Cundefined
Dnull
Attempts:
2 left
💡 Hint
res.locals is used to pass data between middleware and routes
📝 Syntax
advanced
2:00remaining
Which option correctly defines error-handling middleware in Express?
Express error-handling middleware must have a specific function signature. Which of these options correctly defines such middleware?
Afunction errorHandler(err, req, res, next) { res.status(500).send('Error'); }
Bfunction errorHandler(req, res, next) { res.status(500).send('Error'); }
Cfunction errorHandler(err, req, res) { res.status(500).send('Error'); }
Dfunction errorHandler(req, res) { res.status(500).send('Error'); }
Attempts:
2 left
💡 Hint
Error middleware must have four parameters: err, req, res, next
🔧 Debug
advanced
2:00remaining
Why does this custom middleware cause the server to hang?
This middleware logs the request but the server never responds or moves on. What is the cause?
Node.js
function logAndForget(req, res, next) {
  console.log('Request received');
  // missing next() call
}

// Usage in Express app
// app.use(logAndForget);
AMiddleware does not call next(), so request never proceeds
BMiddleware throws an error but does not handle it
CMiddleware calls next() twice causing a crash
DMiddleware modifies req object incorrectly
Attempts:
2 left
💡 Hint
Middleware must call next() or end the response
🧠 Conceptual
expert
2:30remaining
Which statement best describes the order of middleware execution in Express?
Given multiple middleware functions registered in an Express app, how does Express decide the order in which to run them?
AMiddleware runs only if the previous middleware sends a response
BMiddleware runs in reverse order of registration, always running all middleware regardless of next()
CMiddleware runs in parallel asynchronously, order does not matter
DMiddleware runs in the order they are added to the app, stopping if a middleware does not call next()
Attempts:
2 left
💡 Hint
Think about how Express processes middleware functions sequentially