👾
Node.js
  • 🧑‍💻Full-Stack Web Developer
  • 📚Теорія
    • 1️⃣Основи Node.js
      • Вступ
      • Модулі Node.js
      • Запуск скриптів модулів в Node.js
      • Структура проєкту, експорт-імпорт, index.js як хаб
      • Модулі CommonJS
      • Модулі MJS
      • Модулі ECMAScript
      • Модулі NPM + базові модулі
      • Глобальні змінні
      • Робота з файлами
    • 2️⃣Консольні додатки
      • Створення консольних додатків
    • 3️⃣Фреймворк Express
      • Про Express
      • Nodemon і запуски скриптів
      • Postman
      • Проміжне ПЗ middleware
      • Передача даних на сервер
      • Роутінг
      • CRUD
      • Налаштування лінтера
    • 4️⃣REST API
      • Змінні оточення
      • Логування
      • REST
      • Методи HTTP
      • CORS
      • Формування URL для REST API
      • Контроллери відсутнього роуту і непередбачуваної помилки
      • Валідація даних Joi
      • Рефакторинг додатку за MVC архітектурою
      • Express автогенератор додатку
    • 5️⃣База даних Mongo.DB
      • Основи MongoDB
      • Налаштування Mongo Atlas
      • Встановлення локальної MongoDB і основні команди
    • 6️⃣ODM Mongoose
      • Mongoose
      • Порядок планування бекенд додатку
      • чорнетка
    • 7️⃣Автентифякація WJT
      • чорнетка
      • чорнетка 2
    • 8️⃣Файли
      • чернетка
    • 9️⃣тестування
      • чернетка
    • 🔟Page 14
      • імейли
    • чорнетка докер
    • чорнетка сокети
    • додаткові матеріали
    • 👷Практика
      • 1️⃣Page 4
      • 2️⃣Page 5
      • 3️⃣Page 6
      • 4️⃣Page 7
      • 5️⃣Page 8
      • 6️⃣Page 9
  • Про мене
    • Про мене
Powered by GitBook
On this page
  1. Теорія
  2. REST API

Контроллери відсутнього роуту і непередбачуваної помилки

PreviousФормування URL для REST APINextВалідація даних Joi

Last updated 1 year ago

Зазвичай в самому низу нашого сервера перед ініціалізацією сервера вставляють функцію обробки, якщо не знайдено жодного збігу за маршрутом. Іноді ці функції виносять в окремі файли. Цей код відпрацюється, якщо запит надходить формату, який не передбачений. Зірочка означає всі інші маршрути.

index.js
/**
 * Not found request handler.
 */
app.all('*', (req, res) => {
  res.status(404).json({
    msg: 'Oops! Resource not found..',
  });
});

Error handler

Якщо на сервері трапляється непередбачувана помилка (глюк), не з вини сервісу то треба вміти опрацювати цю помилку. Для цього внизу також пишуть middleware з 4 параметрами. Це є вказівкою, що це middleware опрацювання помилки.

index.js
/**
 * Global error handler. Four arguments required!!
 */
app.use((err, req, res, next) => {
  res.status(500).json({
    msg: err.message,
  });
});

Щоб перевірити відпрацювання контроллера помилки, створимо штучну помилку в запиті пінг, який ми розглядали раніше і зробимо GET-запит з маршрутом ping.

index.js
app.get("/ping", (req, res) => {
  throw new Error("Fake error");

  res.status(200).json({
    msg: "pong!",
  });
});

Цю примусову помилку має відпрацювати вищезазначений контролер помилки.

📚
4️⃣