Подтвердить что ты не робот

Экспресс-маршруты параметров параметров

У меня есть маршрут в моем приложении Express, который выглядит так:

app.get('/:id', function (request, response) {
  …
});

Идентификатор всегда будет числом. Однако в настоящий момент этот маршрут соответствует другим вещам, таким как /login.

Думаю, мне нужно две вещи:

  • использовать этот маршрут только в том случае, если идентификатор является числом, и
  • только в том случае, если для этого определенного параметра уже нет маршрута (например, столкновение с /login).

Можно ли это сделать?

4b9b3361

Ответ 1

Развернув ответ Marius, вы можете указать регулярное выражение AND имя параметра:

app.get('/:id(\\d+)/', function (req, res){
  // req.params.id is now defined here for you
});

Ответ 3

Вы можете использовать:

// /12345
app.get(/\/([^\/]+)\/?/, function(req, res){
  var id = req.params[0];
  // do something
});

или это:

// /post/12345
app.get(/\/post\/([^\/]+)\/?/, function(req, res){
  var id = req.params[0];
  // do something
});