Офіційний старт та відкриття курсу Unit тестування в Java - 22.07! 5280 грн замість 6600 грн!
Дізнатися більше
31.01.2024
12 хвилин читання

Основи роботи з фреймворком Express.js

Express.js – це фреймворк для Node.js, що надає набір функцій для створення веб- і мобільних додатків. Express.js заснований на стандартних API Node.js, що робить його простим у вивченні та використанні.

Історія Express.js почалася з прагнення створити гнучкий фреймворк для Node.js, який би став стандартом розробки веб-додатків. TJ Holowaychuk, автор фреймворку, надихнувся каркасом Sinatra, написаним мовою Ruby. Він прагнув зберегти мінімалізм, але при цьому забезпечити можливість підключення безлічі плагінів.

Відтоді він став одним із найпопулярніших веб-фреймворків для Node.js (його в обов’язковому порядку вивчають студенти курсу NODE.JS від компанії FoxmindED).

Сьогодні Express.js є невід’ємною частиною екосистеми Node.js і продовжує залишатися одним із найпопулярніших виборів для розроблення серверної частини веб-додатків.

На курсі NODE.JS від FoxmindED ти можеш на практиці та під керівництвом досвідченого ментора вивчити фреймворк Express.js.
Деталі курсу

Основні особливості 

Express.js надає безліч функцій для розробки веб-додатків, включно з ними:

  • Маршрутизація.
  • Підтримка шаблонів: інтеграція з різними шаблонізаторами (Jade, Handlebars і EJS).
  • Підтримка баз даних: фреймворк легко інтегрується з різними базами даних (MongoDB, PostgreSQL і MySQL).
  • Підтримка тестування.

Express.js надає прості та ефективні механізми обробки різних HTTP-методів. Розглянемо як приклад маршрути для оновлення (PUT) і видалення (DELETE) користувачів:

Проміжне ПЗ в Express.js виконує завдання перед або після обробки HTTP-запитів. Ось приклад використання middleware для перевірки авторизації користувача:

Цей код демонструє додавання проміжного програмного забезпечення, яке перевіряє, чи авторизований користувач, до певного маршруту.

Встановлення та налаштування

  • Для встановлення Express.js виконайте в терміналі: npm install express

Ця команда встановлює фреймворк у глобальний простір імен Node.js.

  • Щоб створити перший додаток, створіть новий каталог і файл index.js. Вставте наступний код:

Так створюється простий застосунок, що відповідає на всі HTTP-запити до кореневого маршруту (/) рядком “Hello, world!”.

  • Для запуску програми в терміналі виконайте: node index.js

Додаток буде доступний за адресою http://localhost:3000 у вашому браузері.

Додаток Express.js зазвичай складається з таких компонентів:

  • index.js: запускає додаток і обробляє HTTP-запити.
  • Маршрути: визначають обробку HTTP-запитів.
  • Проміжне ПЗ: виконується перед або після обробки HTTP-запитів.
  • Шаблони: використовуються для генерації HTML-коду.

Маршрутизація 

В Express.js маршрутизація базується на шаблонах URL-адрес. Для створення маршруту використовується метод route() об’єкта app. Наприклад, наступний код створює маршрут для обробки HTTP-запитів до /users/:id:

У цьому прикладі маршрут використовує шаблон URL-адреси /users/:id, де :id – це змінна, що містить ідентифікатор користувача.

Express.js надає також методи маршрутизації, такі як post(), put() і delete(). Вони використовуються для обробки HTTP-запитів із відповідними методами.

Наведемо приклад створення маршруту:

  • Обробка HTTP-запитів до кореневого маршруту:
  • Обробка HTTP-запитів до маршруту /users:

Управління маршрутами можна здійснювати за допомогою таких методів:

  • use(): додає маршрут у кінець ланцюжка маршрутів.
  • useBefore(): додає маршрут на початок ланцюжка.
  • delete(): видаляє маршрут із ланцюжка маршрутів.

Приклад:

Робота з проміжним програмним забезпеченням (Middleware)

Middleware являє собою функцію, що виконується перед або після обробки HTTP-запиту. В Express.js його можна застосовувати за допомогою методу use() об’єкта app. Для прикладу, додамо middleware для перевірки авторизації користувача:

Цей приклад показує, як middleware отримує об’єкти req і res, а також функцію next(), що передає управління наступному middleware або функції обробки маршруту.

Ви можете створювати власні middleware для виконання завдань, які не вирішуються вбудованими. Наприклад:

Express.js також має велику екосистему сторонніх бібліотек middleware: 

  • шолом: захищає додаток від атак.
  • morgan: запис журналу HTTP-запитів.
  • cors: підтримка CORS у додатках Express.js.

Створення API 

RESTful API, що відповідає принципам REST, використовує прості HTTP-методи для операцій над ресурсами. Для створення такого API з Express.js потрібно:

  1. Визначити ресурси (користувачі, продукти, замовлення тощо).
  2. Визначити операції (створення, читання, оновлення, видалення).
  3. Створіть маршрути (для кожного ресурсу створіть маршрут, що обробляє запити).
  4. Обробіть запити (використовуйте функції маршрутизації Express.js для обробки запитів).
  5. Надішліть відповіді (використовуйте методи res.send() або res.json().

Приклад використання Express.js для надсилання відповіді:

Для обробки GET-запиту використовується метод req.query для отримання параметрів запиту. Наприклад, код нижче обробляє GET-запит до маршруту /users, повертаючи список користувачів:

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

Безпека та продуктивність

Безпека — це важливий аспект будь-якого веб-додатка. Express.js не є винятком. Пропонуємо кілька порад для цього:

  • Використовуйте протокол HTTPS: він шифрує дані, що передаються між клієнтом і сервером. Це допомагає захистити дані від перехоплення.
  • Завжди встановлюйте актуальні оновлення, щоб захистити свій додаток від останніх загроз.
  • Існує безліч бібліотек middleware, які можуть допомогти захистити ваш додаток від атак. Наприклад, бібліотека helmet надає набір функцій для захисту від загальних атак, таких як XSS і SQL-ін’єкції.
  • Регулярно проводьте тестування безпеки свого застосунку, щоб виявити будь-які потенційні вразливості.
Https

Щоб оптимізувати продуктивність додатків, пропонуємо використовувати такі методи:

  • Кешування. Воно може допомогти прискорити роботу вашої програми, зберігаючи результати часто використовуваних операцій у пам’яті.
  • Запити до бази даних. Чим їх буде менше виконуватися вашим додатком, тим швидше він працюватиме.
  • Оптимізовані алгоритми. Вибирайте їх для виконання завдань, таких як сортування і пошук.
  • Оптимізуйте код. Проведіть аналіз коду вашого застосунку, щоб знайти місця, де можна внести поліпшення продуктивності.

Інтеграція з базами даних

Express.js забезпечує просту інтеграцію з різними базами даних через використання відповідних драйверів. Ось кілька прикладів:

  • MongoDB: Mongoose
  • PostgreSQL: knex.js
  • MySQL: mysql2
  • SQLite: sqlite3

Щоб інтегрувати Express.js з базою даних, виконайте такі кроки:

  1. Встановіть драйвер бази даних: npm install <driver_name>
  2. Ініціалізуйте підключення до бази даних:
  1. Використовуйте драйвер для операцій над базою даних:

А тепер розглянемо приклади простого налаштування і використання баз даних MongoDB і PostgreSQL у додатках на Express.js:

  • MongoDB:
  • PostgreSQL:

Тестування та налагодження додатків

Існує безліч методів тестування додатків на Express.js, які ви можете використовувати:

  • Одиничне тестування:
  • фокус на перевірці окремих одиниць коду;
  • ефективний для виявлення помилок у конкретних частинах коду.
  • Інтеграційне тестування:
  • фокус на перевірці взаємодії між різними одиницями коду;
  • гарантує правильну взаємодію різних частин програми.
  • Системне тестування:
  • фокус на перевірці всього додатка загалом;
  • гарантує, що додаток працює очікуваним чином у реальних умовах.
Підпишіться на наш Ютуб-канал! Корисні відео для програмістів чекають на вас! YouTube
Оберіть свій курс програмування! Шлях до кар’єри програміста починається тут! Подивитись

Ось деякі з найпоширеніших інструментів налагодження (процес пошуку та усунення помилок у коді) для додатків на Express.js:

  • Node Inspector – вбудований інструмент налагодження.
  • Chrome DevTools – набір інструментів для налагодження веб-додатків, включно з Express.js.

Які практики найчастіше використовують у процесі налагодження?

  1. Точки зупинки:
  • призупинення виконання коду в конкретних місцях;
  • перевірка значень змінних і покрокове виконання коду.
  1. Перегляд значення змінних:
  • інструменти налагодження для перегляду значень змінних;
  • перевірка відповідності значень очікуванням.
  1. Виконання коду крок за кроком:
  • використання інструментів налагодження для покрокового виконання коду;
  • відстеження процесу виконання коду.

Висновок

Express.js надає безліч переваг у розробці веб-додатків, починаючи від простоти використання до потужних можливостей маршрутизації та middleware. Рекомендуємо глибше вивчити можливості фреймворка, щоб повністю освоїти його потенціал і поліпшити процес розробки.

FAQ
Що таке Express.js?

Express.js - це гнучкий і легкий веб-фреймворк для Node.js, призначений для створення веб-додатків і API.

Для чого використовується Express.js?

Express.js використовується для створення веб-серверів, RESTful API, опрацювання маршрутів, мідлварів і шаблонізації у веб-додатках.

Як встановити Express.js?

Express.js можна встановити за допомогою npm, використовуючи команду npm install express.

Що таке мідлвар (middleware) в Express.js?

Мідлвар в Express.js - це функції, які мають доступ до об'єктів запиту (request) і відповіді (response), і можуть змінювати їх або виконувати код між отриманням запиту та надсиланням відповіді.

Чи можна використовувати Express.js з іншими бібліотеками Node.js?

Так, Express.js легко інтегрується з іншими бібліотеками та модулями Node.js, що робить його гнучким для використання в різних проектах.

Чи підтримує Express.js створення веб-сокетів?

Безпосередньо Express.js не підтримує веб-сокети, але його можна інтегрувати з такими бібліотеками, як Socket.io, для роботи з веб-сокетами.

Залишилися запитання щодо фреймворку Express.js? Запитуй у коментарях нижче!

Додати коментар

Ваш імейл не буде опубліковано. Обов'язкові поля відзначені *

Зберегти моє ім'я, імейл та адресу сайту у цьому браузері для майбутніх коментарів