About Lesson
Types of Middleware In Express.js
1. Application-level Middleware
- Used throughout the application.
- Declared using app.use() or app.METHOD().
Simple Example:
JavaScript
const express = require('express');
const app = express();
// Simple logging middleware
app.use((req, res, next) => {
console.log(`Request received at ${new Date().toISOString()}`);
next(); // Pass control to the next middleware or route handler
});
app.get('/', (req, res) => {
res.send('Welcome to Express Middleware!');
});
app.listen(3000, () => console.log('Server running on port 3000'));
2. Router-level Middleware
- Works specifically with express.Router().
- Used to group route-specific middleware.
Simple Example:
JavaScript
const router = express.Router();
// Middleware for specific routes
router.use((req, res, next) => {
console.log('Router middleware executed');
next();
});
router.get('/users', (req, res) => {
res.send('User List');
});
app.use('/api', router);
3. Built-in Middleware
- Express provides middleware functions out of the box:
- express.json() – Parses JSON request body.
- express.urlencoded({ extended: true }) – Parses URL-encoded payloads.
- express.static(‘public’) – Serves static files.
Example:
JavaScript
app.use(express.json()); // Parse JSON request body
4. Error-handling Middleware
- Used for handling errors in Express applications.
- Takes four arguments: err, req, res, next.
Simple Example:
JavaScript
app.use((err, req, res, next) => {
console.error('Error:', err.message);
res.status(500).send('Something went wrong!');
});
5.Third-part Middleware
- External middleware modules that can be used in Express applications.
- Installed via npm.
Popular Third-party Middleware:
- cors – Enables Cross-Origin Resource Sharing.
- morgan – Logs HTTP requests.
- helmet – Enhances security.
Example of Using Morgan:
JavaScript
const morgan = require('morgan');
app.use(morgan('dev'));