Express js 路由 - 重叠参数
Express js routes - overlapping params
我有一个名为 date
的路线,我在其中列出了输入日期的所有帖子。
即:/date/26-12-2015
然后我实现了基本的分页,所以我不会一次显示所有数据。即:/date/26-12-2015/2
第二页
现在一切正常了,但我想添加一个路由,用 /date/26-12-2015/count
计算当天的所有文章,但该路由认为它是一个页面参数。
最好的选择是什么?如果页面参数包含 'count',我是否过滤该页面参数?或者路由此参数的首选方式是什么?
这是我的代码:
router.get('/:date/:page', function(req, res){
var db = req.db;
var collection = db.get('collectionXYZ');
collection.find([...], function(e, docs){
res.json(docs);
});
});
// this gets skipped (because it thinks it's a parameter to the page route?)
router.get('/:date/count', function(req, res){
var dateStart = new Date(req.params.date);
var db = req.db;
var collection = db.get('collectionXYZ');
collection.count([...], function(e, docs){
res.json(docs);
});
});
将静态路由放在最前面,/:id
将匹配所有内容。
我有一个名为 date
的路线,我在其中列出了输入日期的所有帖子。
即:/date/26-12-2015
然后我实现了基本的分页,所以我不会一次显示所有数据。即:/date/26-12-2015/2
第二页
现在一切正常了,但我想添加一个路由,用 /date/26-12-2015/count
计算当天的所有文章,但该路由认为它是一个页面参数。
最好的选择是什么?如果页面参数包含 'count',我是否过滤该页面参数?或者路由此参数的首选方式是什么?
这是我的代码:
router.get('/:date/:page', function(req, res){
var db = req.db;
var collection = db.get('collectionXYZ');
collection.find([...], function(e, docs){
res.json(docs);
});
});
// this gets skipped (because it thinks it's a parameter to the page route?)
router.get('/:date/count', function(req, res){
var dateStart = new Date(req.params.date);
var db = req.db;
var collection = db.get('collectionXYZ');
collection.count([...], function(e, docs){
res.json(docs);
});
});
将静态路由放在最前面,/:id
将匹配所有内容。