Q43: How do you write a configurable middleware factory in Express?
A middleware factory is a higher-order function that accepts configuration options and returns a standard Express middleware function (req, res, next).
Configurable Middleware Factory Pattern
// Middleware Factory
const roleGuard = (allowedRoles) => {
return (req, res, next) => {
if (!req.user || !allowedRoles.includes(req.user.role)) {
return res.status(403).json({ error: 'Permission denied' });
}
next();
};
};
// Usage in routes
app.delete('/user/:id', roleGuard(['ADMIN', 'SUPERUSER']), handleDelete);💡 Factory functions accept runtime options and return customized middleware callbacks.
Key Takeaways
- Configurable middleware functions return standard
(req, res, next)closures. - Enables reusable, parameterized authorization checks across route definitions.