Ответ 1
Развернув ответ Marius, вы можете указать регулярное выражение AND имя параметра:
app.get('/:id(\\d+)/', function (req, res){
// req.params.id is now defined here for you
});
У меня есть маршрут в моем приложении Express, который выглядит так:
app.get('/:id', function (request, response) {
…
});
Идентификатор всегда будет числом. Однако в настоящий момент этот маршрут соответствует другим вещам, таким как /login
.
Думаю, мне нужно две вещи:
/login
).Можно ли это сделать?
Развернув ответ Marius, вы можете указать регулярное выражение AND имя параметра:
app.get('/:id(\\d+)/', function (req, res){
// req.params.id is now defined here for you
});
Да, посмотрите http://expressjs.com/guide/routing.html и https://www.npmjs.com/package/path-to-regexp (который выражает использование). Непроверенная версия, которая может работать:
app.get(/^(\d+)$/, function (request, response) {
var id = request.params[0];
...
});
Вы можете использовать:
// /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
});