Express.js
Beginner
1 min read
Writing and Registering Middleware
Example
const express = require('express');
const morgan = require('morgan');
const compression = require('compression');
const app = express();
// ── Third-party middleware ────────────────────────────────────
app.use(morgan('dev')); // HTTP request logger
app.use(compression()); // gzip responses
app.use(express.json());
// ── Custom app-level middleware ───────────────────────────────
app.use((req, res, next) => {
req.requestId = crypto.randomUUID();
res.setHeader('X-Request-Id', req.requestId);
next();
});
// ── Route-level middleware ────────────────────────────────────
function requireAdmin(req, res, next) {
if (req.headers['x-admin-key'] !== process.env.ADMIN_KEY) {
return res.status(403).json({ error: 'Forbidden' });
}
next();
}
app.delete('/admin/cache', requireAdmin, (req, res) => {
res.json({ cleared: true });
});
// ── 404 fallback ──────────────────────────────────────────────
app.use((req, res) => {
res.status(404).json({ error: `${req.method} ${req.path} not found` });
});
app.listen(3000);
Related Resources
Express.js Reference
Complete tag & property list
Express.js How-To Guides
Step-by-step practical guides
Express.js Exercises
Practice what you've learned
More in Express.js