快速路线(' begin-url-(类型:string2 | string3)? - end-url')?

时间:2017-10-26 21:40:35

标签: reactjs express routes

您好我有这些路线:

router.route('/begin-url-presaved-:param').get(Controller.method1)
router.route('/begin-url-postsaved-:param').get(Controller.method2)
router.route('/begin-url-:param').get(Controller.method3)

网址示例:

/begin-url-presaved-param001   (type: presaved, param: param001)
/begin-url-postsaved-param001  (type: postsaved, param: param001)
/begin-url-param001            (type: null, param: param001)

有任何方法可以对这些网址进行分组,因此它们将调用相同的控制器,然后我将只有一个路由,只有一个控制器。 像这样...

router.route('/begin-url-:type(presaved|postsaved)?-:param').get(Controller.method)

提前谢谢!

1 个答案:

答案 0 :(得分:1)

这似乎有效:

router.get('/begin-url:type(-presaved|-postsaved)?-:param', function(req, res) {
    res.json(req.params);
});

它没有给你你想要的东西,因为type在开始时会有连字符,但我想这不会成为问题。通过调整路径可以摆脱type中的连字符,但我找不到与Express 4和Express 5路由兼容的方法,所以我决定离开它在。