0
0
Expressframework~30 mins

Async error handling in routes in Express - Mini Project: Build & Apply

Choose your learning style9 modes available
Async Error Handling in Express Routes
📖 Scenario: You are building a simple Express server that fetches user data asynchronously. You want to handle errors properly in your routes so the server does not crash and sends meaningful error messages to clients.
🎯 Goal: Create an Express route that fetches user data asynchronously and handles errors using async/await and try/catch blocks.
📋 What You'll Learn
Create an Express app with a route /user/:id
Use an async function to simulate fetching user data
Add a configuration variable for a delay time
Use try/catch inside the route to handle errors
Send a JSON response with user data or error message
💡 Why This Matters
🌍 Real World
Handling asynchronous operations and errors in web server routes is essential for building reliable APIs that do not crash and provide clear feedback to clients.
💼 Career
Backend developers frequently write async routes in Express and must handle errors properly to maintain server stability and good user experience.
Progress0 / 4 steps
1
Set up Express app and user data
Create a variable called express that requires the 'express' module. Then create an Express app by calling express() and assign it to a variable called app. Finally, create a constant object called users with these exact entries: 1: { name: 'Alice' }, 2: { name: 'Bob' }.
Express
Need a hint?

Use require('express') to import Express. Create app by calling express(). Define users as an object with keys 1 and 2.

2
Add delay configuration variable
Create a constant called delay and set it to 1000 (milliseconds).
Express
Need a hint?

Just create a constant delay and assign it the number 1000.

3
Create async function to fetch user data
Write an async function called getUserById that takes id as a parameter. Inside, return a new Promise that waits for delay milliseconds using setTimeout. After the delay, if users[id] exists, resolve with users[id], otherwise reject with an Error with message 'User not found'.
Express
Need a hint?

Use new Promise with setTimeout to simulate delay. Resolve if user exists, reject with error if not.

4
Add async route with error handling
Add a GET route to app at path /user/:id. Use an async function with parameters req and res. Inside, use a try/catch block. In try, await getUserById(req.params.id) and send the user data as JSON with res.json(user). In catch, send a 404 status with JSON containing { error: error.message }.
Express
Need a hint?

Use app.get with async function. Use try/catch to await getUserById. Send JSON response or error with status 404.