Node.js з MySQL: створення швидких і масштабованих підключень до даних
14:42, 01.09.2026
Поєднання Node.js і MySQL є популярним вибором серед розробників, які створюють сучасні веб-додатки. Node.js пропонує неблокуючу архітектуру, керовану подіями, що робить його ідеальним для додатків, що працюють у режимі реального часу. MySQL — це надійна реляційна база даних, відома своєю швидкістю та простотою. Разом вони дають розробникам змогу створювати швидкі та масштабовані рішення, що базуються на даних.
Наведена нижче інформація допоможе вам налаштувати середовище розробки, підключити Node.js до MySQL, створити RESTful API, оптимізувати продуктивність, безпечно обробляти помилки та спланувати майбутнє розширення.
Налаштування середовища для розробки
Перед початком розробки надзвичайно важливо правильно налаштувати ваше середовище. Це забезпечує узгодженість та скорочує час на усунення помилок у майбутньому.
Встановіть Node.js та npm
Завантажте та встановіть Node.js з офіційного веб-сайту. npm (Node Package Manager) входить до його складу. Перевірте версії за допомогою команди:
node -v
npm -v
Встановіть MySQL
Встановіть MySQL і встановіть надійний пароль для користувача root. Використовуйте MySQL Workbench або інструменти командного рядка для управління базою даних.
Створіть папку для проєкту
Ініціалізуйте свій проєкт Node.js:
mkdir node-mysql-app
cd node-mysql-app
npm init -y
Встановіть необхідні пакети
Для створення API вам знадобиться express, а для підключення до бази даних — mysql2:
npm install express mysql2
Використовуйте dotenv для змінних середовища
Зберігайте конфіденційні облікові дані, такі як паролі до баз даних, у файлі .env. Встановіть dotenv:
npm install dotenv
Встановлення з’єднання між Node.js та MySQL
Тепер ви готові підключити свій додаток Node.js до MySQL.
Створіть файл .env
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=yourpassword
DB_NAME=mydatabase
Налаштуйте з’єднання з базою даних
Створіть новий файл db.js:
const mysql = require('mysql2');
require('dotenv').config();
const pool = mysql.createPool({
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
waitForConnections: true,
connectionLimit: 10
});
module.exports = pool.promise();
Це створює пул з’єднань для ефективної обробки численних запитів.
Створення RESTful API за допомогою Node.js та MySQL
Після цього давайте створимо простий API для управління користувачами.
Створення сервера Express
У server.js:
const express = require('express');
const app = express();
const db = require('./db');
app.use(express.json());
app.listen(3000, () => {
console.log('Сервер працює на порту 3000');
});
Створити маршрути
Додайте маршрути в той самий файл або в новий:
app.get('/users', async (req, res) => {
try {
const [rows] = await db.query('SELECT * FROM users');
res.json(rows);
} catch (err) {
res.status(500).json({ error: 'Помилка бази даних' });
}
});
app.post('/users', async (req, res) => {
const { name, email } = req.body;
try {
const [result] = await db.query('INSERT INTO users (name, email) VALUES (?, ?)', [name, email]);
res.status(201).json({ id: result.insertId, name, email });
} catch (err) {
res.status(500).json({ error: 'Помилка вставки' });
}
});
Цей простий API дозволяє клієнтам читати та записувати дані користувачів.
Підвищення продуктивності додатка
Щоб ваш додаток залишався чуйним, зосередьтеся на продуктивності:
Використовуйте пул з’єднань
Ця функція вже реалізована в нашому db.js, що зменшує навантаження, пов’язане зі створенням нових з’єднань.Оптимізуйте SQL-запити
Використовуйте EXPLAIN у MySQL для аналізу запитів. Уникайте використання SELECT * у великих таблицях.Впроваджуйте кешування
Для даних, до яких часто звертаються, використовуйте рішення для кешування, такі як Redis.Мінімізуйте обсяг даних у запитах до API
Надсилайте лише необхідні дані. Уникайте надсилання великих JSON-блоків, коли в цьому немає потреби.
Реалізація надійної обробки помилок та безпеки
Безпека та стабільність мають вирішальне значення для будь-якого додатка.
Централізуйте обробку помилок
Використовуйте проміжне програмне забезпечення в Express:
app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Щось пішло не так!');
});
Перевірка введених даних
Використовуйте бібліотеки, такі як Joi або express-validator, щоб перевіряти введені користувачем дані.Запобігання SQL-ін’єкціям
Використовуйте параметризовані запити, як показано раніше (? заповнювачі).Захистіть файли середовища
Ніколи не додавайте файли .env до системи контролю версій. Використовуйте .gitignore.
Використовуйте HTTPS
У виробничому середовищі завжди надавайте доступ до вашого додатка через HTTPS, щоб захистити дані під час передачі.
Планування масштабованості та зростання
У міру зростання вашого додатка ви повинні готуватися до збільшення трафіку та обсягу даних.
Модульна база коду
Розділіть маршрути, контролери та сервіси на окремі файли. Це полегшить супровід вашого проєкту.Горизонтальне масштабування
Запускайте кілька екземплярів Node.js за балансувальником навантаження, таким як Nginx.Використання сервісного шару
Створіть сервісний шар між маршрутами та логікою бази даних для повторного використання коду та підтримки бізнес-правил.Реплікація бази даних
MySQL підтримує реплікацію. Використовуйте репліки для читання, щоб розвантажити головну базу даних від трафіку читання.Моніторинг та ведення журналів
Використовуйте такі інструменти, як PM2, Loggly або Datadog, для моніторингу продуктивності та журналів.
Заключні думки
Node.js та MySQL — це потужне поєднання для створення масштабованих веб-додатків. Завдяки неблокуючій архітектурі та структурованому реляційному сховищу розробники можуть створювати швидкі, безпечні та ефективні системи. Правильно налаштувавши середовище, оптимізувавши з’єднання та спланувавши майбутнє зростання, ви зможете створювати додатки, готові до роботи в умовах виробничого навантаження.