маршрут express.js с параметром или без него - PullRequest
0 голосов
/ 07 мая 2018

Я использую node.js v8.11.1 и экспресс 4.16.3.

Скажем, у меня есть следующий маршрут

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

Я хочу сделать что-то вроде

if(req.params.id) then query1
else //no id param in the url
query2

Итак, я мог бы пойти либо на http://localhost:3000/, либо на http://localhost:3000/504 и маршруты будут реагировать соответственно.

но когда я иду на http://localhost:3000/, я просто получаю Cannot GET /

Как мне исправить мои маршруты?

Спасибо

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Я согласен с @ n32303, вы можете сделать:

app.get('/', function(req, res){
   //Called when there is no id specified
}
app.get('/:id', function(req, res){
   // Called when an Id is specified (req.params.id will be set )
}

Для устранения необходимости в операторе if

0 голосов
/ 07 мая 2018

Сделайте ваш параметр маршрута необязательным, используя оператор ?.

Измените свой маршрут следующим образом:

app.get('/:id?', function(req, res){

Теперь он должен работать для обоих: http://localhost:3000/ или http://localhost:3000/504

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