Nearby lessons
13 of 14🔀 Router-Level Middleware in Express JS | Beginner-Friendly Guide
📌 What is Router-Level Middleware?
💡 What Is Router-Level Middleware?
Router-level middleware works exactly like application-level middleware,
but it is applied only to routes defined under a specific express.Router() instance.
This helps organize your project by grouping related routes and applying middleware only where needed.
⚙️ Step 1: Understanding Router-Level Middleware
Router-level middleware is attached to a specific router object instead of the entire Express application.
This means the middleware will run only for routes handled by that router.
📁 Step 2: Router-Level Middleware Example (index.js)
Below is a complete example demonstrating router middleware, router routes, and prefix usage.
Express.js Server
NODE RUNTIME
const express = require('express'); const cors = require('cors'); const app = express(); const router = express.Router(); app.use(cors()); // Router-level middleware router.use((req, res, next) => { console.log('Router-level middleware executed'); next(); }); // Routes using this router router.get('/', (req, res) => { res.send('Router Home Page'); }); router.get('/about', (req, res) => { res.send('Router About Page'); }); // Use the router with a prefix app.use('/test', router); // Root route to guide user app.get('/', (req, res) => { res.send('<h1>Router-Level Middleware Tutorial</h1><p>Go to <a href="/test">/test</a> to see the router in action.</p>'); }); // Start server app.listen(8080, () => { console.log('Server is running at http://localhost:8080'); });
Browser Output
📘 How It Works
- 🔀
express.Router()creates a mini Express instance for grouping routes. - ⚙️
router.use()applies middleware to all routes in this router. - 🧭 The router is used with a prefix using
app.use('/test', router). - 📌 Now all routes inside this router become:
/test//test/about
- 📝 Middleware runs only for routes starting with /test.
🧠 Test Your Knowledge
5 QuestionsProgress: 0 / 5
Keep Going!Error Handling Middleware