Reactjs 快速路线(';开始url-(类型:string2 | string3)?-结束url';)?

Reactjs 快速路线(';开始url-(类型:string2 | string3)?-结束url';)?,reactjs,express,routes,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) URL示例: /begin-url-presaved-param001 (type:

你好,我有以下路线:

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)
URL示例:

/begin-url-presaved-param001   (type: presaved, param: param001)
/begin-url-postsaved-param001  (type: postsaved, param: param001)
/begin-url-param001            (type: null, param: param001)
有任何方法可以对这些URL进行分组,因此它们将调用同一个控制器,然后我将只有一条路由和一个控制器。 像这样

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

这似乎有效:

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

它没有给你你想要的,因为
类型
在开头会有连字符,但我想这不会是一个问题。通过调整路径可以去除
类型中的连字符,但我找不到一种既能兼容Express 4路线又能兼容Express 5路线的方法,所以我决定将其保留在其中。

你不能。路由器无法知道param001实际上不是一种类型。如果您想这样做,下面的param001应该作为get查询传递,因此您的路由应该是router.route('/begin url-:param/?prepost=value)。get(…)谢谢!但是我需要管理3个URL(来自示例)>_