Я хотел бы иметь возможность обрабатывать пути, как это теПути обработки, такие как/search /: search (/ filter1 /: filter1)?
/search/:search
/search/:search/filter1/:filter1
/search/:search/filter2/:filter2
/search/:search/filter1/:filter1/filter2/:filter2
Как я должен сделать это с помощью restify или expressjs (или любой другой REST Lib)?
Я знаю, что могу создать обработчик на основе регулярных выражений, а затем проанализировать аргументы и обработать вручную обработчики для каждой части, но я предполагаю, что должен быть более простой и более структурный способ привязки обработчиков с использованием методов библиотеки. Любые советы приветствуются.
Спасибо.
[EDIT] Мой взгляд на решение 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);
Я знаю, что я мог бы сделать это, но просто хотел, чтобы сделать его лучше, как дружественные URLs :) В любом случае, спасибо. – dmikam