【发布时间】:2017-05-27 08:33:04
【问题描述】:
我有一条这样定义的路线
router.route('/:id/organisers').get(HackathonControllers.getHackathonRoles());
现在,getHackathonRoles 是一个控制器,例如:
function getHackathonRoles(role, req, res, next) {
console.log(role);
res.status(200).json({
message: `Successfully updated Hackathon ${hackathonId}, published status updated to ${hackathonPublishedStatus}`
})
}
我最理想的做法是通过定义多个路由器端点来传递一个角色。比如:
router.route('/:id/organisers').get(HackathonControllers.getHackathonRoles(role='organiser'));
和
router.route('/:id/volunteer').get(HackathonControllers.getHackathonRoles(role='volunteer'));
所以基本上我想重用getHackathonRoles 方法,并希望避免为不同的角色重写相同的方法。理想情况下,我应该能够在控制器中使用console.log(role)。
到目前为止,这失败了,我得到了错误:
router.route('/:id/organisers').get(_hackathonController2.default.getHackathonRoles(角色 = '组织者'));
如何解决这个问题并使其保持干燥?我不想将参数合并到/:id/? 等端点中,而参数类似于role=organiser 或role=volunteer 等。
【问题讨论】: