Экспресс-маршрутизатор -: id?

Реальные простые ребята: я вижу, что многие фрагменты книг/фрагментов кода используют следующий синтаксис в маршрутизаторе:

app.use('/todos/:id', function (req, res, next) {
  console.log('Request Type:', req.method);
  next();
});

Я не уверен, как интерпретировать маршрут здесь... будет ли он маршрутизировать '/todos/anything'? а затем захватить "что угодно", а лечение - с переменным идентификатором? как использовать эту переменную? Я уверен, что это быстрый ответ, я просто не видел этот синтаксис раньше.

Ответ 1

Это распространенное промежуточное ПО.

В этом случае, да, он отправит /todos/anything, а затем req.params.id будет установлен на 'anything'

Ответ 2

В вашем коде, предназначенном для промежуточного программного обеспечения Express Framework, если вы хотите получить какой-либо идентификатор в коде сервера, используя этот маршрут, вы получите этот идентификатор с помощью req.params.id.

app.use('/todos/:id', function (req, res, next) {
  console.log('Request Id:', req.params.id);
  next();
});

Ответ 3

Да, в вашем примере вы получите req.params.id значение "ничего"

Ответ 4

Route path: /student/:studentID/books/:bookId
Request URL: http://localhost:xxxx/student/34/books/2424
req.params: { "studentID": "34", "bookId": "2424" }

app.get('/student/:studentID/books/:bookId', function (req, res) {
  res.send(req.params);
});

Аналогично для вашего кода:

Route path: /todos/:id
Request URL: http://localhost:xxxx/todos/36
req.params: { "id": "36" }

app.use('/todos/:id', function (req, res, next) {
  console.log('Request Id:', req.params.id);
  next();
});