【发布时间】:2014-10-05 07:36:20
【问题描述】:
假设我想拥有大致如下所示的 REST 端点:
/user/
/user/user_id
/user/user_id/items/
/user/user_id/items/item_id
每个 if 的 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);
item 的 URL 是 user 的 URL 层次结构的后代。现在我如何获取带有/users 的URL 到userRouter,但更具体的路由/user/*user_id*/items/ 到itemRouter?另外,如果可能的话,我希望 itemRouter 也可以访问 user_id。
【问题讨论】:
-
关于使用 Express 解决这个问题的好答案。但是,您可以使用 Loopback(基于 Express 构建)来实现基于 Swagger 的 API 并添加模型之间的关系以按照您的要求执行 CRUD。好的是在初始学习曲线之后,组装起来要快得多。 loopback.io
标签: javascript node.js express