Build HTTP APIs with routing, middleware, validation, controllers, and error handling.
Lessons
Restrict routes by user role and permission.
Role-Based Access Control is easiest to learn by reading the example, changing it, and observing the result.
import express from 'express';
const app = express();
function requireRole(role) {
return (req, res, next) => {
if (req.user?.role !== role) {
return res.status(403).json({ message: 'Forbidden' });
}
next();
};
}
app.delete('/api/lessons/:id', requireRole('admin'), (req, res) => {
res.status(204).end();
});
app.listen(3000);Practice the Role-Based Access Control 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.