Bird
Raised Fist0
Expressframework~20 mins

Health check endpoints in Express - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Health Check Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the output of this Express health check endpoint?
Consider this Express server code snippet for a health check endpoint. What will the client receive when requesting /health?
Express
import express from 'express';
const app = express();
app.get('/health', (req, res) => {
  res.status(200).json({ status: 'ok', uptime: process.uptime() });
});
// Assume server listens properly
APlain text 'ok' with status 200
B{"status":"ok","uptime":<number>} (JSON with uptime as a number)
C404 Not Found error
D500 Internal Server Error
Attempts:
2 left
💡 Hint
Look at the response method used and the data sent in JSON format.
📝 Syntax
intermediate
2:00remaining
Which option correctly defines a health check endpoint in Express?
You want to create a health check endpoint at /health that returns status 200 and JSON {"status":"healthy"}. Which code snippet is correct?
Aapp.get('/health', (req, res) => { res.status(200).json({ status: 'healthy' }); });
Bapp.get('/health', (req, res) => { res.status(200); res.json({ status: 'healthy' }); });
Capp.get('/health', (req, res) => { res.sendStatus(200).json({ status: 'healthy' }); });
Dapp.get('/health', (req, res) => { res.json({ status: 'healthy' }).status(200); });
Attempts:
2 left
💡 Hint
Remember the order of chaining methods on the response object matters.
🔧 Debug
advanced
2:00remaining
Why does this health check endpoint cause a runtime error?
Examine this code snippet for a health check endpoint. Why does it cause an error when accessed?
Express
app.get('/health', (req, res) => {
  res.status(200);
  res.json({ status: 'ok' });
  res.send('Healthy');
});
Ares.status(200) is called without sending a response body, causing error.
Bres.json cannot be called after res.status.
CMissing return statement causes the endpoint to hang and timeout.
DCalling res.send after res.json causes an error because response is already sent.
Attempts:
2 left
💡 Hint
Think about how many times you can send a response per request.
❓ state_output
advanced
2:00remaining
What is the value of res.statusCode after this health check handler runs?
Given this Express health check handler, what will res.statusCode be after the function executes?
Express
app.get('/health', (req, res) => {
  res.status(503);
  res.json({ status: 'unavailable' });
});
Aundefined
B200
C503
D500
Attempts:
2 left
💡 Hint
res.status sets the status code before sending the response.
🧠 Conceptual
expert
2:00remaining
Which option best explains why health check endpoints should be lightweight and fast?
Health check endpoints are often called frequently by load balancers or monitoring tools. Why is it important that these endpoints are lightweight and fast?
ABecause slow or heavy health checks can cause false alarms and increase server load unnecessarily.
BBecause health check endpoints must perform full database backups to verify system health.
CBecause health check endpoints should block other requests until they finish.
DBecause health check endpoints should always return detailed logs and metrics.
Attempts:
2 left
💡 Hint
Think about how frequent calls to health checks affect server performance and monitoring accuracy.

Practice

(1/5)
1. What is the main purpose of a health check endpoint in an Express app?
easy
A. To serve static files like images
B. To confirm the app is running and responsive
C. To handle user login requests
D. To connect to the database

Solution

  1. Step 1: Understand what a health check endpoint does

    A health check endpoint is a simple route that tells if the app is alive and working.
  2. Step 2: Compare options to this purpose

    Only To confirm the app is running and responsive matches this purpose. Other options are unrelated to health checks.
  3. Final Answer:

    To confirm the app is running and responsive -> Option B
  4. Quick Check:

    Health check = Confirm app running [OK]
Hint: Health check endpoints just say if app is alive [OK]
Common Mistakes:
  • Thinking health check handles user data
  • Confusing health check with static file serving
  • Assuming it manages database connections
2. Which of the following is the correct syntax to create a simple health check GET route in Express?
easy
A. app.listen('/health', () => console.log('OK'));
B. app.post('/health', (req, res) => res.send('OK'));
C. app.get('/health', (req, res) => res.send('OK'));
D. app.use('/health', (req, res) => res.send('OK'));

Solution

  1. Step 1: Identify the HTTP method for health check

    Health checks use GET requests to check status, so app.get is correct.
  2. Step 2: Check syntax correctness

    app.get('/health', (req, res) => res.send('OK')); uses app.get with path '/health' and sends 'OK' response correctly.
  3. Final Answer:

    app.get('/health', (req, res) => res.send('OK')); -> Option C
  4. Quick Check:

    GET route with res.send('OK') = app.get('/health', (req, res) => res.send('OK')); [OK]
Hint: Health checks use GET routes with res.send('OK') [OK]
Common Mistakes:
  • Using POST instead of GET
  • Using app.use instead of app.get
  • Trying to listen on a route path
3. What will be the output when a client sends a GET request to the following Express route?
app.get('/health', (req, res) => {
  res.status(200).send('Service is up');
});
medium
A. HTTP 200 OK with body 'Service is up'
B. HTTP 404 Not Found
C. HTTP 500 Internal Server Error
D. No response, request times out

Solution

  1. Step 1: Analyze the route handler

    The route listens for GET on '/health' and sends status 200 with text 'Service is up'.
  2. Step 2: Determine the HTTP response

    The client receives status 200 OK and the string 'Service is up' in the response body.
  3. Final Answer:

    HTTP 200 OK with body 'Service is up' -> Option A
  4. Quick Check:

    Status 200 + send text = HTTP 200 OK with body 'Service is up' [OK]
Hint: res.status(200).send('text') sends 200 OK with that text [OK]
Common Mistakes:
  • Assuming 404 if route exists
  • Confusing status codes
  • Expecting no response or error
4. Identify the error in this health check endpoint code and choose the fix:
app.get('/health', (req, res) => {
  res.sendStatus(200);
  res.send('OK');
});
medium
A. Remove res.send('OK') because res.sendStatus ends response
B. Change res.sendStatus(200) to res.status(200)
C. Add next() call after res.sendStatus(200)
D. Change app.get to app.post

Solution

  1. Step 1: Understand res.sendStatus behavior

    res.sendStatus(200) sends status and ends the response immediately.
  2. Step 2: Identify why res.send('OK') causes error

    Calling res.send after response ended causes an error. So remove the second send.
  3. Final Answer:

    Remove res.send('OK') because res.sendStatus ends response -> Option A
  4. Quick Check:

    One response per request = Remove res.send('OK') because res.sendStatus ends response [OK]
Hint: Only send one response per request [OK]
Common Mistakes:
  • Sending multiple responses in one route
  • Confusing res.sendStatus and res.status
  • Adding next() unnecessarily
5. You want your Express app's health check endpoint to return JSON with status and uptime in seconds. Which code correctly implements this?
hard
A. app.get('/health', (req, res) => { res.json('status: ok, uptime: ' + process.uptime()); });
B. app.get('/health', (req, res) => { res.send('status: ok, uptime: ' + process.uptime()); });
C. app.get('/health', (req, res) => { res.status(200).send({ status: 'ok', uptime: process.uptime() }); });
D. app.get('/health', (req, res) => { res.json({ status: 'ok', uptime: process.uptime() }); });

Solution

  1. Step 1: Understand JSON response method

    res.json sends a JSON object with correct headers automatically.
  2. Step 2: Check each option's response format

    app.get('/health', (req, res) => { res.json({ status: 'ok', uptime: process.uptime() }); }); sends a JSON object with keys 'status' and 'uptime' correctly. app.get('/health', (req, res) => { res.send('status: ok, uptime: ' + process.uptime()); }); sends a string, not JSON. app.get('/health', (req, res) => { res.status(200).send({ status: 'ok', uptime: process.uptime() }); }); sends an object with res.send but may not set JSON headers properly. app.get('/health', (req, res) => { res.json('status: ok, uptime: ' + process.uptime()); }); sends a string inside res.json, which is incorrect.
  3. Final Answer:

    app.get('/health', (req, res) => { res.json({ status: 'ok', uptime: process.uptime() }); }); -> Option D
  4. Quick Check:

    Use res.json with object for JSON response [OK]
Hint: Use res.json({key: value}) to send JSON response [OK]
Common Mistakes:
  • Sending JSON as string instead of object
  • Using res.send with object without headers
  • Confusing res.json and res.send
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