Back
Syntax
Study
Editor
Mode:
HTML
CSS
JavaScript
PHP
Reset
Run »
HTML / CSS / JS
// routes/api/v1/index.js const express = require('express'); const router = express.Router(); const userRouter = require('./users'); const productRouter = require('./products'); router.use('/users', userRouter); router.use('/products', productRouter); module.exports = router; // app.js — versioned API const express = require('express'); const app = express(); const v1 = require('./routes/api/v1'); const v2 = require('./routes/api/v2'); app.use(express.json()); app.use('/api/v1', v1); app.use('/api/v2', v2); // Resulting endpoints: // GET /api/v1/users // POST /api/v1/users // GET /api/v1/products // GET /api/v2/users (different logic) // Passing router params to child routers: // mergeParams: true lets the child see :userId from parent const commentRouter = express.Router({ mergeParams: true }); commentRouter.get('/', (req, res) => { res.json({ userId: req.params.userId, comments: [] }); }); // Mount with param: // router.use('/:userId/comments', commentRouter); app.listen(3000, () => console.log('Versioned API on port 3000'));
Result
Open