Express.js
Beginner
1 min read
Route Parameters, Wildcards, and app.route()
Example
const express = require('express');
const app = express();
app.use(express.json());
// Chained route methods — DRY path definition
app.route('/articles/:id')
.get((req, res) => {
res.json({ id: req.params.id, title: 'Sample Article' });
})
.put((req, res) => {
res.json({ id: req.params.id, updated: true });
})
.delete((req, res) => {
res.status(204).send();
});
// router.param — auto-load resource
const router = express.Router();
router.param('userId', async (req, res, next, id) => {
try {
// Simulate DB lookup
const user = { id, name: 'Alice' }; // replace with real query
if (!user) return res.status(404).json({ error: 'User not found' });
req.user = user;
next();
} catch (err) {
next(err);
}
});
router.get('/users/:userId', (req, res) => {
res.json(req.user); // already loaded by param hook
});
app.use('/api', router);
app.listen(3000);