误读url路径作为params

时间:2016-08-02 09:18:18

标签: node.js express

我遇到了一个可能听起来很奇怪但很多人必须处理的问题。

我在routes.js文件中定义了两条路线。

ROUTE1 router.route('/atpages/:query') .get(app.oauth.authorise(), atpagesController.getAtpagesByIdOrName);

Route2到 router.route('/atpages/match') .get(app.oauth.authorise(), atpagesController.matchAtpagesByUrl);

这两条路线都应该在控制器中调用不同的功能,但问题是每当我点击 Route2 时,会自动调用 Route1 。 我知道它正在考虑将match作为查询的问题,我的问题是我需要路由来点击不同的问题而不重新定义他们的端点。

我想要的是路线应该保持原样,但是它们应该只打击各自的功能。

TIA。

1 个答案:

答案 0 :(得分:1)

您可以检查路由1控制器中的查询是否与匹配不相同,如下所示:

function getAtpagesByIdOrName (req, res, next) {
    if (req.params.query == 'match') {
        next();
    }
}