What is middleware in Express.js and how does it work?
Functions that execute during request-response cycle.
Basic Middleware
```javascript const express = require('express'); const app = express();
// Simple middleware app.use((req, res, next) => { console.log('Time:', Date.now()); next(); // Pass to next middleware });
// Route handler app.get('/', (req, res) => { res.send('Hello!'); }); ```
Types
Application-level: ```javascript app.use(express.json()); app.use(express.urlencoded({ extended: true })); ```
Router-level: ```javascript const router = express.Router(); router.use((req, res, next) => { console.log('Router middleware'); next(); }); ```
Error-handling: ```javascript app.use((err, req, res, next) => { console.error(err); res.status(500).send('Error!'); }); ```
Real Example - Auth
```javascript 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 (err) { res.status(403).json({ error: 'Invalid token' }); } };
// Protected route app.get('/profile', authMiddleware, (req, res) => { res.json({ user: req.user }); }); ```
Short Answer
Interview readyA concise answer to help you respond confidently on this topic during an interview.