📖 Scenario: You are building a simple web server using Express.js. You want to add endpoints that let users check if the server is running and healthy.
🎯 Goal: Create two health check endpoints: /health that returns a simple status message, and /ready that returns a readiness message.
📋 What You'll Learn
Create an Express app instance called app
Add a GET endpoint /health that responds with JSON { status: 'ok' }
Add a GET endpoint /ready that responds with JSON { ready: true }
Make the app listen on port 3000
💡 Why This Matters
🌍 Real World
Health check endpoints help monitoring systems know if your server is running and ready to handle requests.
💼 Career
Many backend jobs require setting up health checks for services to ensure reliability and uptime.
Progress0 / 4 steps
1
Set up Express app
Create a variable called express by requiring the 'express' module. Then create an Express app instance called app by calling express().
Express
Hint
Use require('express') to import Express and then call it to create app.
2
Add /health endpoint
Add a GET endpoint /health to the app that sends a JSON response with { status: 'ok' }.
Express
Hint
Use app.get('/health', (req, res) => { ... }) and inside send JSON with res.json({ status: 'ok' }).
3
Add /ready endpoint
Add a GET endpoint /ready to the app that sends a JSON response with { ready: true }.
Express
Hint
Use app.get('/ready', (req, res) => { ... }) and inside send JSON with res.json({ ready: true }).
4
Start the server
Make the app listen on port 3000 using app.listen.
Express
Hint
Use app.listen(3000) to start the server on port 3000.
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
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.
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.
Final Answer:
To confirm the app is running and responsive -> Option B
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
Step 1: Identify the HTTP method for health check
Health checks use GET requests to check status, so app.get is correct.
Step 2: Check syntax correctness
app.get('/health', (req, res) => res.send('OK')); uses app.get with path '/health' and sends 'OK' response correctly.
Final Answer:
app.get('/health', (req, res) => res.send('OK')); -> Option C
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
Step 1: Analyze the route handler
The route listens for GET on '/health' and sends status 200 with text 'Service is up'.
Step 2: Determine the HTTP response
The client receives status 200 OK and the string 'Service is up' in the response body.
Final Answer:
HTTP 200 OK with body 'Service is up' -> Option A
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: