StudyCode
Читаем :id из URL и находим нужный объект в массиве.
Представь, что у тебя 1000 пользователей. Ты не будешь писать 1000 маршрутов! Вместо этого один маршрут с переменной частью:
/users/1 → пользователь с id=1
/users/42 → пользователь с id=42
/users/99 → пользователь с id=99Двоеточие : перед именем означает "это переменная":
app.get('/users/:id', (req, res) => {
// ^^^
// :id — это «слот», туда подставится любое значение из URL
console.log(req.params.id); // "42" ← строка! Всегда строка
});Важно: req.params.id — это всегда строка, даже если в URL стоит цифра.
Для сравнения с числом нужно преобразование: parseInt(req.params.id)
Если пользователь запросил id=999, которого нет — нужно вернуть 404:
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 на следующем шаге.
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);
});{ id: "42" }const user = users.find(u => String(u.id) === req.params.id);
{
"id": 42,
"name": "Алиса",
"role": "Frontend"
}