【发布时间】:2015-11-30 10:18:55
【问题描述】:
我希望能够处理这样的路径
/search/:search
/search/:search/filter1/:filter1
/search/:search/filter2/:filter2
/search/:search/filter1/:filter1/filter2/:filter2
我应该如何使用 restify 或 expressjs(或任何其他 REST lib)来做到这一点?
我知道我可以基于正则表达式创建一个处理程序,然后解析参数并为每个部分手动调用处理程序,但我直觉应该有一些更简单、更结构化的方式来使用库的方法链接处理程序。任何建议表示赞赏。
谢谢。
[编辑] 我对 pervect 解决方案的看法与此类似:
REST.get('/search/:search(/filter1/:filter1)?(/filter2/:filter2)?',function(req,res,next){
// handler for search where $search is always defined,
// but $filter1 and $filter2 are optional
});
现在这样解决,直到找到更好的解决方案
如果没有更好的提议,我现在是这样做的:
var searchHandler = function (req,res,next){};
REST.get('/search/:search', searchHandler);
REST.get('/search/:search/filter1/:filter1', searchHandler);
REST.get('/search/:search/filter2/:filter2', searchHandler);
REST.get('/search/:search/filter1/:filter1/filter2/:filter2', searchHandler);
【问题讨论】:
标签: node.js rest express chaining restify