如何在node.js / express路由器中声明一个强制参数
我有一系列的路线,如:
var router = express().Router; router.get('/',middleware1,middleware2); router.get('/courses',middleware1,middleware2,..) router.post('/dates',middleware1,middleware2,..) app.use('/u',router);
现在,当我声明的路线的根
app.use('/u',router);
我想把一个强制性的参数,必须出现在微型应用程序的每一个路线
app.use('/u/:user_name/',router);
所以我可以检查每个路由与router.param存在这个参数在数据库中。
是这样的可能性,通过定义在微应用程序的根,而不是像每一个单一的路线参数
router.get('/:user_name/',middleware1,middleware2); router.get('/:user_name/courses',middleware1,middleware2,..) router.post('/:user_name/dates',middleware1,middleware2,..)
因为它们在实际应用中实际上是很多的,将它们全部改变是一种痛苦?
真的感谢 !
只要您使用的是最新版本的Express,您应该可以使用mergeParams
来完成此操作。
var router = express.Router({mergeParams: true});
那么这将工作:
app.use('/u/:user_name/', router);
mergeParams
logging在这里: