4 min read
•Question 2 of 62easyWhat is Middleware in Express.js?
Understanding Express middleware and its usage.
What You'll Learn
- What middleware is
- Types of middleware
- Creating custom middleware
What is Middleware?
Middleware functions have access to request, response objects, and the next middleware function. They can execute code, modify req/res, end the request, or call next().
Middleware Flow
Request → Middleware 1 → Middleware 2 → Route Handler → Response
Types of Middleware
code.jsJavaScript
const express = require('express');
const app = express();
// 1. Application-level middleware
app.use((req, res, next) => {
console.log('Time:', Date.now());
next();
});
// 2. Router-level middleware
const router = express.Router();
router.use(authMiddleware);
// 3. Built-in middleware
app.use(express.json());
app.use(express.static('public'));
// 4. Error-handling middleware
app.use((err, req, res, next) => {
res.status(500).json({ error: err.message });
});Custom Auth Middleware Example
code.jsJavaScript
const authMiddleware = (req, res, next) => {
const token = req.headers.authorization;
if (!token) {
return res.status(401).json({ error: 'No token' });
}
try {
req.user = jwt.verify(token, SECRET);
next();
} catch {
res.status(401).json({ error: 'Invalid token' });
}
};
app.get('/protected', authMiddleware, (req, res) => {
res.json({ user: req.user });
});