以下是两个简单的场景:
user
获取id
并返回user
获取id
,执行其他操作,然后返回我想将方案2
实现为
router.post('/api/users/:id/someStuff', controller.getUser, controller.doStuff)
但是方案1
应该实现为
router.post('/api/users/:id/someStuff', controller.getUser)
基本上,controller.getUser
既是中间件又是端点。我该如何做到这一点?如果我在res.son()
内使用getUser
,然后在doStuff
内重复使用{},那么我会收到错误。
答案 0 :(得分:0)
我会将此作为app.param
的{{1}}处理程序实现并命名我的param(在明文档中有一个例子)。然后对于场景1,路由处理程序将只执行:userId
,并且场景2将预加载res.json(req.user);
,以便在发送用户之前执行其需要执行的任何其他操作。如果“发送用户”实际上只是req.user
,那么它就不足以将其分解为自己的中间件,但如果它最终成长为代码片段,则可以将其分解为中间件或辅助函数。