2016-08-02 64 views
0

我遇到了一个可能听起来很奇怪但很多人必须处理的问题。误读网址路径作为参数

我在我的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

您可以检查是否查询不等于比赛在1个线控制是这样的:

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

但当时如果我真的想通过'match'我的查询,就会胡作非为,这将是像限制我不想要的功能。 –