Разница между app.get () и app.route (). Get () - PullRequest
2 голосов
/ 24 июня 2019

В чем разница между этими двумя утверждениями:

app.get('/',someFunction);

app.route('/').get(someFunction);

Обратите внимание, я не сравниваю router.get и app.get

1 Ответ

3 голосов
/ 24 июня 2019

Предположим, вы хотите сделать три маршрута по одному и тому же пути:

app.get('/calendarEvent', (req, res) => { ... });
app.post('/calendarEvent', (req, res) => { ... });
app.put('/calendarEvent', (req, res) => { ... });

Для этого необходимо каждый раз дублировать путь маршрута.

Вместо этого вы можете сделать это:

app.route('/calendarEvent')
  .get((req, res) => { ... })
  .post((req, res) => { ... })
  .put((req, res) => { ... });

Это просто небольшой путь, если у вас есть маршруты для нескольких разных глаголов по одному и тому же пути. У меня никогда не было повода использовать это, но, видимо, кто-то думал, что это будет удобно.

Это может быть еще более полезно, если у вас есть какое-то общее промежуточное программное обеспечение, уникальное только для этих трех маршрутов:

app.route('/calendarEvent')
  .all((req, res, next) => { ... next(); })
  .get((req, res) => { ... })
  .post((req, res) => { ... })
  .put((req, res) => { ... });

Можно также использовать новый объект маршрутизатора для аналогичной цели.


И, я думаю, я был бы упущен, если бы не объяснил, что нет разницы только между этими двумя утверждениями (что является частью того, что вы спросили):

app.get('/',someFunction); 
app.route('/').get(someFunction);

Они делают одно и то же. Остальная часть моего ответа о том, что еще вы можете сделать со вторым вариантом.

...