Build HTTP APIs with routing, middleware, validation, controllers, and error handling.
Lessons
Throw typed errors that carry status codes and messages.
Custom HTTP Error Classes is easiest to learn by reading the example, changing it, and observing the result.
import express from 'express';
const app = express();
app.use(express.json());
app.get('/api/lessons/:id', (req, res, next) => {
const error = new Error('Lesson not found');
error.status = 404;
next(error); // forward to the error handler
});
// Central error handler - 4 arguments
app.use((err, req, res, next) => {
res.status(err.status || 500).json({ message: err.message });
});
app.listen(3000);Practice the Custom HTTP Error Classes example in a small scratch file, then explain what changed and why.