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.
In accordance with Section 6 & Section 7 of the DPDP Act 2023, third-party analytics and marketing trackers are strictly gated behind your affirmative consent. You may withdraw consent at any time under Section 6(4).
Essential for session authentication (ci_session), Cross-Site Request Forgery security (csrf_cookie_name), and Cloudflare DDoS/bot prevention. Cannot be disabled.
Gated under DPDP Section 7. Allows Google Analytics 4 (Google Consent Mode v2) to measure aggregate, anonymized tool usage.
Enables browser local storage to preserve your theme selection (dark/light mode) and code editor layout between visits.
Used to display developer sponsorships and native tool partner notices.