Node.js Express: динамические маршруты и обработчики ошибок

Чтобы создавать динамические маршруты и обрабатывать ошибки в приложении Node.js Express, вы можете использовать следующие методы:

  1. Динамические маршруты: Express позволяет определять маршруты с динамическими параметрами. Вы можете указать параметры маршрута, добавив двоеточие и имя параметра в пути маршрута. Например:
app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  // Handle the request for the specific user ID
});

В этом примере маршрут /users/:idбудет соответствовать любому URL-адресу, который начинается с /users/, за которым следует динамический idпараметр. Доступ к значению idможно получить с помощью req.params.id.

  1. Промежуточное программное обеспечение для обработки ошибок: Express предоставляет способ обработки ошибок с помощью функций промежуточного программного обеспечения. Вы можете определить промежуточное программное обеспечение для обработки ошибок, используя четыре параметра: err, req, resи next. Например:
app.use((err, req, res, next) => {
  // Handle the error
});

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

  1. Встроенная обработка ошибок: Express имеет встроенную обработку распространенных ошибок, таких как 404 (не найден) и 500 (внутренняя ошибка сервера). Вы можете определить промежуточное программное обеспечение для обработки ошибок специально для этих случаев:
app.use((req, res, next) => {
  res.status(404).send('Not Found');
});
app.use((err, req, res, next) => {
  res.status(500).send('Internal Server Error');
});

В этих примерах первое промежуточное программное обеспечение будет обрабатывать запросы, которые не соответствуют каким-либо определенным маршрутам, возвращая ответ «Не найден». Второе промежуточное программное обеспечение будет обрабатывать любые необработанные ошибки, возвращая ответ «Внутренняя ошибка сервера».