Определение нескольких маршрутов Express.js с использованием параметров пути - PullRequest
9 голосов
/ 17 октября 2011

Как я могу отличить Express.js от путей "/1.1.1" и "/ login"?

Я использую следующий код:

app.get('/:x?.:y?.:z?', function(req, res){

...

app.get('/login', function(req, res){

1 Ответ

13 голосов
/ 17 октября 2011

Маршруты выполняются в порядке их добавления. Поэтому, если вы хотите, чтобы ваш маршрут входа имел приоритет, сначала определите его.

В противном случае, если вы хотите принимать решения на основе маршрута, вы можете вызвать функцию next () из вашего обработчика следующим образом:

app.get('/:x?.:y?.:z?', function(req, res, next){ // <== note the 'next' argument 
    if (!req.params.x && !req.params.y && !req.params.z) {
        next(); // pass control to the next route handler
    }
    ...
}

Из Express guide : «То же самое верно для нескольких маршрутов, для которых определен один и тот же путь, они будут просто выполняться по порядку, пока один из них не вызовет next () и не решит ответить».

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