Припустимо, я хочу мати кінцеві точки REST, які виглядають приблизно так:
/user/
/user/user_id
/user/user_id/items/
/user/user_id/items/item_id
CRUD на кожен, якщо має сенс. Наприклад, / user POST створює нового користувача, GET отримує всіх користувачів. / user / user_id GET отримує лише одного користувача.
Елементи є специфічними для користувача, тому я ставлю їх під user_id , який є конкретним користувачем.
Тепер, щоб зробити маршрутизацію Express швидкішою, я зробив кілька екземплярів маршрутизатора. Існує маршрутизатор для користувача та маршрутизатор для елемента.
var userRouter = require('express').Router();
userRouter.route('/')
.get(function() {})
.post(function() {})
userRouter.route('/:user_id')
.get(function() {})
var itemRouter = require('express').Router();
itemRouter.route('/')
.get(function() {})
.post(function() {})
itemRouter.route('/:item_id')
.get(function() {})
app.use('/users', userRouter);
// Now how to add the next router?
// app.use('/users/', itemRouter);
URL до item
- це нащадки ієрархії URL-адрес user
. Тепер, як я можу отримати URL-адресу з /users
будь-яким користувачемRouter, але більш конкретним маршрутом /user/*user_id*/items/
до itemRouter? А також, я хотів би, щоб користувальницький доступ був доступний і для itemRouter, якщо це можливо.