Названные маршруты в предварительных условиях - PullRequest
1 голос
/ 09 марта 2012

Я хотел бы использовать Предварительное условие параметра маршрута для выборки элементов портфеля с помощью «slug», если в URL задан параметр: slug.Однако я также хотел бы использовать RegExp для соответствия URI.Поддерживаются ли именованные захваты в узле?Могу ли я дать этому ([-\w]+) захватить имя, чтобы предварительное условие slug было выполнено?

app.param('slug', function(req, res, next, slug){
  // get thing from database by slug
})

//app.get('/work/view/:slug', function(req, res){
app.get(/^\/work\/view\/([-\w]+)/, function(req, res){
  // render view
})

1 Ответ

3 голосов
/ 09 марта 2012

Я не уверен, что это то, что вы ищете, но, насколько я знаю, нет прямого способа сделать то, что вам нужно.Тем не менее, вы можете использовать именованный параметр («слизень») и добавить предварительное выражение Regex вместе со своим собственным для достижения того же эффекта.

Взгляните на express-params модуль visionmedia здесь ,Я ожидаю, что он будет поддерживаться просто отлично, так как это от самого создателя Express.

То, что вы собираетесь делать (после установки express-params), в основном примерно так:

app.param('slug', /^[-\w]+$/);

app.param('slug', function(req, res, next, slug){
  // get thing from database by slug
});

app.get('/work/view/:slug', function(req, res){
  //render view
});

Я не проверял ничего из этого, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...