StudyCode
К практике
НачальныйExpressreq.params404
НачальныйExpressreq.params404

Параметры маршрута

Читаем :id из URL и находим нужный объект в массиве.

Нажми на любой элемент диаграммы для объяснения
Шаг 1 из 2
1

Параметры в URL — динамические маршруты

Зачем нужны параметры в URL?

Представь, что у тебя 1000 пользователей. Ты не будешь писать 1000 маршрутов! Вместо этого один маршрут с переменной частью:

javascript
/users/1   → пользователь с id=1
/users/42  → пользователь с id=42
/users/99  → пользователь с id=99

Синтаксис Express

Двоеточие : перед именем означает "это переменная":

js
app.get('/users/:id', (req, res) => {
  //                    ^^^
  //          :id — это «слот», туда подставится любое значение из URL

  console.log(req.params.id); // "42" ← строка! Всегда строка
});

Важно: req.params.id — это всегда строка, даже если в URL стоит цифра. Для сравнения с числом нужно преобразование: parseInt(req.params.id)

Код 404 — ресурс не найден

Если пользователь запросил id=999, которого нет — нужно вернуть 404:

js
const user = USERS.find(u => u.id === id);
if (!user) {
  return res.status(404).json({ error: 'User not found' });
}
res.json(user); // 200 OK по умолчанию

Ниже — код сервера с этим маршрутом. Напиши функцию findUserById на следующем шаге.

javascript
const USERS = [
  { id: 1, name: 'Алиса', role: 'Frontend' },
  { id: 2, name: 'Боб',   role: 'Backend'  },
  { id: 3, name: 'Вася',  role: 'DevOps'   },
];

app.get('/users/:id', (req, res) => {
  const id = parseInt(req.params.id); // строка → число
  const user = findUserById(id, USERS);

  if (!user) return res.status(404).json({ error: 'User not found' });
  res.json(user);
});