Перейти до основного контенту

Створення сервера за допомогою Express: інструкція для початківців

4 хв читання
1423 переглядів

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

Якщо ви хочете навчитися створювати свій власний сервер за допомогою Express, цей гід для початківців надасть вам усі необхідні інструкції та приклади коду, щоб швидко засвоїти основи.

Ви дізнаєтеся, як встановити Express, налаштувати маршрутизацію, створювати обробники запитів і працювати з шаблонами. Ви також дізнаєтеся про важливі концепції, такі як проміжне програмне забезпечення, шаблонізація та обробка помилок.

Підготовка до створення сервера

Перш ніж розпочати створення сервера, важливо виконати кілька підготовчих кроків:

1. Встановіть Node.js на свій комп'ютер.Node.js - це середовище виконання JavaScript, яке дозволяє запускати код на сервері. Ви можете завантажити та встановити Node.js з офіційного сайту https://nodejs.org/.

2. Перевірте, чи встановлений Node.js, відкривши командний рядок (в Windows) або термінал (в macOS або Linux) і ввівши наступну команду:

Якщо установка пройшла успішно, ви побачите версію Node.js.

3. Встановіть пакетний менеджер npm (Node Package Manager), який використовується для встановлення сторонніх пакетів і модулів Node.js. npm встановлюється автоматично під час установки Node.js, тому немає потреби вручну встановлювати пакетний менеджер.

4. Створіть нову папку, в якій буде розташовуватися ваш проект сервера. Ви можете вибрати будь-яке зручне для вас місце для створення папки.

5. Відкрийте створену папку в командному рядку або терміналі за допомогою команди cd. Наприклад, якщо ваша папка називається "my-server-project", введіть наступну команду:Тепер ви готові почати створення свого сервера за допомогою Express!Установка ExpressДля установки Express необхідно виконати наступні кроки:Встановіть Node.js, якщо він ще не встановлений на вашому комп'ютері. Ви можете скачати інсталятор Node.js з офіційного сайту https://nodejs.org/ і слідувати інструкціям по встановленню.Відкрийте командний рядок або термінал і перевірте, чи встановлений Node.js, виконавши команду node -v. Якщо у вас встановлена остання версія Node.js, ви побачите номер версії.Встановіть Express, виконавши команду npm install express.Перевірте, чи встановлений Express, виконавши команду npm ls express. Якщо установка пройшла успішно, ви побачите версію Express.Вітаємо! Ви успішно встановили Express на свій комп'ютер і готові розпочати створення сервера за допомогою Цього фреймворка.Ініціалізація проектуПеред початком створення сервера за допомогою Express необхідно ініціалізувати проект. Для цього виконайте такі кроки:Створіть нову директорію для вашого проекту на вашому комп'ютері.Відкрийте командний рядок і перейдіть до створеної директорії за допомогою команди cd директорія_проекту.Ініціалізуйте проект за допомогою команди npm init. Виконайте всі запити, включаючи вказівку назви проекту та інших налаштувань.Встановіть Express у проект за допомогою команди npm install express. Ця команда встановить Express і додасть його до файлу залежностей проекту (package.json).Тепер проект успішно ініціалізований і готовий до створення сервера за допомогою Express.Налаштування маршрутівПісля створення сервера за допомогою Express, нам необхідно налаштувати маршрути для обробки запитів.Маршрути в Express визначаються з використанням методів HTTP (наприклад, GET, POST, PUT, DELETE) та шляху URL. Для кожного маршруту задається обробник, який виконується при надходженні відповідного запиту.Давайте розглянемо приклад налаштування маршрутів:У цьому прикладі визначено чотири маршрути:/api/users – GET-маршрут для отримання списку користувачів/api/users – POST-маршрут для створення нового користувача/api/users/:id – PUT-маршрут для оновлення інформації про користувача з заданим ID/api/users/:id – DELETE-маршрут для видалення користувача з заданим IDЗамість /api/users та /api/users/:id можуть бути будь-які інші шляхи URL в залежності від вашого додатку та його функціональності.Обробники маршрутів (функції, які викликаються при відповідному запиті) можуть виконувати будь-які дії.дії, необхідні для обробки запиту, наприклад, витягувати дані з бази даних та надсилати відповіді.

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

Створення шаблонів представлення

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

Express підтримує різні шаблонізатори, такі як Pug, Handlebars, EJS та інші. Візьмемо для прикладу шаблонізатор EJS.

Щоб використовувати EJS у вашому проекті, необхідно встановити його за допомогою npm:

npm install ejs

Після встановлення шаблонізатора, ми можемо налаштувати Express для використання EJS як механізму подання. Ось як це робиться:Тепер Express буде шукати файли шаблонів з розширенням .ejs у директорії views. Ми можемо створити файл з назвою index.ejs у директорії views і використовувати його для відображення даних на головній сторінці:Щоб відобразити цей шаблон на головній сторінці, ми можемо використовувати метод res.render() в обробнику маршруту:В цьому прикладі ми передаємо масив користувачів у шаблон за допомогою об'єкта, який вказується другим параметром методу res.render(). Потім Express автоматично підставить значення з масиву в шаблон і надішле результат клієнту.Таким чином, використання шаблонів подання дозволяє значно спростити створення динамічних веб-сторінок з використанням Express.Робота з базою данихСтворення сервера з використанням Express зазвичай включає роботу з базою даних, щоб зберігати, витягувати та оновлювати інформацію. Для роботи з базою даних у Express можна використовувати різні модулі та бібліотеки, такі як mongoose, Sequelize та інші. Тут ми розглянемо приклад роботи з базою даних з використанням модуля mongoose. Спочатку необхідно встановити цей модуль за допомогою команди:Після встановлення модуля його можна підключити у файлі додатку таким чином:При підключенні до бази даних ми вказуємо її URL (наприклад, mongodb://localhost/my_database) та опцію, яка дозволяє використовувати новий парсер рядка підключення.Далі ми можемо створити схему та модель для роботи з даними. Наприклад, уявімо, що у ...У нас є колекція користувачів. Ми можемо визначити схему для цієї колекції наступним чином:

const userSchema = new mongoose.Schema();

Після визначення схеми ми можемо створити модель для роботи з даними користувача:

const User = mongoose.model('User', userSchema);

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

const newUser = new User();newUser.save();

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

User.find( < age: < $lt: 30 >>, function(err, users) );

Це виведе список користувачів молодше 30 років.

Таким чином, робота з базою даних в Express з використанням модуля mongoose досить проста і зручна. Ви можете використовувати додаткові функції та методи для виконання різних.операцій з базою даних.

Робота з POST-запитами

Для початку, встановимо модуль `body-parser` за допомогою npm:

npm install body-parser

Після встановлення модуля, додамо його в проєкт і налаштуємо його:

const express = require('express');const bodyParser = require('body-parser');const app = express();app.use(bodyParser.urlencoded(< extended: false >));app.use(bodyParser.json());// Здесь находится код обработки POST-запросовapp.listen(3000, () => );

Ми підключили модуль `body-parser` і налаштували його для обробки POST-запитів. Метод urlencoded(< extended: false >) вказує, що дані в запиті будуть закодовані за допомогою URL-кодування. Метод json() вказує, що дані в запиті будуть у форматі JSON.

Тепер ми можемо обробляти POST-запити. Для цього нам знадобиться створити обробник, який буде викликатися при отриманні POST-запиту:

app.post('/submit', (req, res) => );

В цьому прикладі ми створили обробник POST-запиту для шляху `/submit`. Всередині обробника ми можемо отримати доступ до надісланих даних за допомогою об'єкта `req.body`. У цьому випадку ми зберігаємо значення полів.`name` та `email` в змінні.Тут можна виконувати будь-яку логіку, яку потрібно обробити на сервері після отримання даних. Наприклад, можна зберегти дані в базі даних або надіслати сповіщення на пошту.Обробка помилокВ процесі розробки сервера, неминуче виникають помилки. Помилки можуть бути пов'язані з некоректним введенням даних користувачем, проблемами з базою даних, недоступністю зовнішніх сервісів та іншими факторами.Обробка помилок є важливою частиною розробки сервера, оскільки допомагає запобігти падінню додатку та надавати користувачам зрозумілі повідомлення про помилки.Express надає кілька способів обробки помилок:СпосібОписMiddleware для обробки помилокExpress дозволяє визначити спеціальний middleware, який буде викликатися для обробки помилок. Middleware дляобробка помилок має чотири аргументи, включаючи об'єкт помилки.Спробувати. схопити конструкціюВсередині обробників маршрутів або проміжного програмного забезпечення можна використовувати конструкцію спроби. схоплення для перехоплення та обробки помилок. Цей підхід дозволяє більш гнучко управляти помилками та вживати різні дії залежно від типу помилки.Об'єкт помилкиExpress надає вбудований об'єкт Error, який можна використовувати для створення та обробки помилок. Об'єкт Error дозволяє вказати повідомлення про помилку, стек викликів та іншу інформацію.Ці методи можуть бути комбіновані для створення більш складних сценаріїв обробки помилок. Важливо врахувати можливі проблеми безпеки при обробці помилок, такі як небажане відображення детальної інформації про помилку для користувачів.Розгортання на серверіПісля того, як ви створили свій сервер з використанням Express,ви можете розгорнути його на живому сервері, щоб ваш сайт був доступний інтернет-користувачам.Першим кроком для розгортання сервера є отримання безкоштовного хостинг-акаунта у провайдера хостингу. Існує безліч провайдерів хостингу, таких як Heroku, AWS, DigitalOcean та інших, які надають послуги розміщення вашого сервера в хмарі.Після реєстрації на вибраній платформі хостингу ви зможете створити новий сервер або віртуальну машину, де ви будете розміщати свій сервер Express. Зазвичай провайдери хостингу пропонують покрокові інструкції про те, як розгорнути ваш сервер на їх платформі.При розгортанні сервера на реальному хостингу вам потрібно врахувати кілька важливих речей. По-перше, перевірте, що ваш сервер використовує правильний порт для прослуховування запитів. У більшості випадків використовується порт 80 для HTTP або порт 443 для HTTPS. Переконайтесь, що з'єднанняпроксіюється на правильний порт у налаштуваннях хостинг-платформи.

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

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

Тепер ви знаєте основні кроки для розгортання свого сервера Express на реальному хостингу. Це дозволить вам створити функціональний і доступний веб-додаток для ваших користувачів.

Захист сервера

1. Оновлюйте залежності: регулярно перевіряйте нові версії Express та інших пакетів, які ви використовуєте у своєму проєкті. Оновлення дозволить вам отримати останні виправлення та покращення безпеки.2. Використовуйте паролі та шифрування: під час створення автентифікації на сервері, використовуйте хешування паролів і шифрування даних, щоб захистити чутливу інформацію.3. Перевіряйте вхідні дані: завжди перевіряйте вхідні дані, отримувані від користувача, щоб запобігти можливим атакам, таким як впровадження коду або SQL-ін'єкції.4. Встановіть обмеження: встановіть обмеження на розмір запитів, щоб запобігти надсиланню великих файлів або запитів, які можуть призвести до відмови в обслуговуванні.5. Використовуйте SSL-зʼєднання: налаштуйте сервер для використання SSL-зʼєднання, щоб забезпечити захищену передачу даних між сервером і клієнтом.6. Обмежте доступ до сервера:використовуйте фаєрволи та інші заходи безпеки, щоб обмежити доступ до вашого сервера лише для довірених IP-адрес або діапазонів IP-адрес.Дотримуючись цих порад, ви зможете створити більш безпечний сервер, готовий до захисту від потенційних загроз і атак.