SyntaxStudy
Sign Up
Node.js Express Router and Route Parameters
Node.js Beginner 10 min read

Express Router and Route Parameters

Express Router lets you group related routes into separate files, keeping your codebase organized. Route parameters (prefixed with :) capture dynamic values from the URL, while query strings are accessed via req.query.

Example
// routes/products.js — a dedicated router file
const express = require('express');
const router  = express.Router();

const products = [
    { id: 1, name: 'Laptop',  price: 999 },
    { id: 2, name: 'Monitor', price: 399 },
];

// GET /products  (with optional ?category= query)
router.get('/', (req, res) => {
    const { category, sort } = req.query;
    let result = products;
    if (category) result = result.filter(p => p.category === category);
    if (sort === 'price') result = result.sort((a, b) => a.price - b.price);
    res.json(result);
});

// GET /products/:id
router.get('/:id', (req, res) => {
    const product = products.find(p => p.id === parseInt(req.params.id));
    if (!product) return res.status(404).json({ error: 'Not found' });
    res.json(product);
});

// GET /products/:id/reviews
router.get('/:id/reviews', (req, res) => {
    res.json({ productId: req.params.id, reviews: [] });
});

module.exports = router;

// app.js — mount the router:
// const productRouter = require('./routes/products');
// app.use('/products', productRouter);
// Now: GET /products, GET /products/1, GET /products/1/reviews