使用命名参数和router.param()表达4路由处理

时间:2014-08-05 19:05:28

标签: node.js express

有没有一种干净的方法来处理Express 4路由中的键/值查询参数?

router.route('/some/route?category=:myCategory')

我想检测此路由中是否存在'myCategory'并使用router.param([name],callback)来处理相关逻辑。

router.param('myCategory', function(req, res, next, id) {
    /* some logic here... */
});

上面的'router.param()'如果我有/some/route/:myCategory这样的路由就可以正常工作但是如果我使用

就会失败
router.route('/some/route?category=:myCategory')

我在这里做错了什么,或者开箱即用的Express 4路由器不支持这个?

1 个答案:

答案 0 :(得分:2)

Express在?作为查询参数后处理属性。所以:

/some/route?mycategory=mine

你必须使用:

req.query.mycategoryreq.query['mycategory']

请参阅此内容以获取更多examples