Как работает маршрутизация в экспрессе с дополнительными параметрами?

голоса
3

В настоящее время я маршрутизация, как это:

app.get('/post/:id?/:edit?/:add?') // ... func and something else

Когда я посылаю запрос URL '/post/', без параметров, она извлекает все сообщения.

В '/post/5', где 5 это идентификатор поста, он получает сообщение с идентификатором 5 в дб.

На '/post/5/edit'открывает страницу с формой для редактирования текущего поста.

Все в порядке. Но когда я пытаюсь открыть 'post/add/, она не работает, так как . req.paramsПоказывает в консоли , что: id: 'add', edit: undefined, add: undefined. Как это исправить?

Задан 04/05/2017 в 14:45
источник пользователем
На других языках...                            


1 ответов

голоса
0

req.params в основном массив, так что в вашем случае первый параметр, req.params [0], всегда будет req.params.id, любое значение, вы предоставляете, и ваша программа будет думать, что вы пытаетесь получить пост с идентификатором «добавить».

Вы можете сделать «пост / добавить» отдельный маршрут, это будет проще.

Ответил 04/05/2017 в 15:17
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more