Почему именно Express.js для создания REST API
Express.js остаётся одним из самых популярных фреймворков для Node.js благодаря своей гибкости, лёгкости и широкой экосистеме. По данным отчёта Stack Overflow Developer Survey за 2023 год, более 22% backend-разработчиков использовали Express.js в своих проектах. Это делает его одним из лидеров среди серверных технологий на JavaScript. Express.js отлично подходит как для прототипирования, так и для построения полноценных REST API, масштабируемых и легко поддерживаемых.
Если вы ищете простой способ, как создать API на Express.js, этот учебник по REST API Express.js поможет вам пошагово разобраться в процессе. Мы рассмотрим реальные примеры, разберём технические детали и дадим рекомендации из практики.
Установка и настройка окружения
Для начала убедитесь, что у вас установлен Node.js версии не ниже 18.x (на 2025 год это уже стандарт). Затем создайте новый проект и установите Express:
```bash
mkdir my-api
cd my-api
npm init -y
npm install express
```
Создайте файл `index.js` — это будет точка входа в ваше приложение. Здесь мы подключим Express и запустим сервер на порту 3000:
```javascript
const express = require('express');
const app = express();
app.use(express.json());
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
```
Этот шаг — основа любого пошагового туториала по Express.js. Благодаря минимальной конфигурации вы сразу получаете рабочее API-приложение.
Реализация базовых маршрутов (routes)
REST API строится на четырёх основных HTTP-методах: GET, POST, PUT и DELETE. Давайте создадим простой API для управления списком задач (todos). Начнём с хранения данных в памяти:
```javascript
let todos = [
{ id: 1, title: 'Купить хлеб', completed: false },
{ id: 2, title: 'Прочитать книгу', completed: true }
];
```
Теперь добавим маршруты:
```javascript
// Получить все задачи
app.get('/api/todos', (req, res) => {
res.json(todos);
});
// Добавить новую задачу
app.post('/api/todos', (req, res) => {
const newTodo = {
id: Date.now(),
title: req.body.title,
completed: false
};
todos.push(newTodo);
res.status(201).json(newTodo);
});
```
Это базовый пример, как работает создание REST API на Express.js. Он демонстрирует, как обрабатывать запросы и отправлять ответы в формате JSON.
Обработка ошибок и валидация данных

В реальной практике важно предусматривать защиту от некорректных данных. Например, если пользователь отправит запрос без поля `title`, сервер должен вернуть ошибку. Добавим простую валидацию:
```javascript
app.post('/api/todos', (req, res) => {
const { title } = req.body;
if (!title || typeof title !== 'string') {
return res.status(400).json({ error: 'Поле title обязательно и должно быть строкой' });
}
const newTodo = {
id: Date.now(),
title,
completed: false
};
todos.push(newTodo);
res.status(201).json(newTodo);
});
```
Также стоит централизовать обработку ошибок. Вы можете использовать middleware для перехвата ошибок и возврата корректного ответа клиенту. Это особенно важно при масштабировании API, что подчёркивается во многих рекомендациях по инструкции по Express.js API.
Подключение к базе данных (MongoDB)
Для хранения данных в продакшене обычно используют базы данных. Один из самых популярных вариантов — MongoDB. По данным DB-Engines за 2024 год, MongoDB занимает 5-е место среди всех СУБД. Чтобы подключить её к Express.js, установим Mongoose:
```bash
npm install mongoose
```
Подключение к базе:
```javascript
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/todos', {
useNewUrlParser: true,
useUnifiedTopology: true
}).then(() => console.log('MongoDB connected'));
```
Создаём модель:
```javascript
const TodoSchema = new mongoose.Schema({
title: String,
completed: Boolean
});
const Todo = mongoose.model('Todo', TodoSchema);
```
Теперь можно заменить временное хранилище вызовами к MongoDB:
```javascript
app.get('/api/todos', async (req, res) => {
const todos = await Todo.find();
res.json(todos);
});
```
Это уже ближе к реальному сценарию, где вы создаёте устойчивое и масштабируемое API. Такой подход широко используется в коммерческих проектах, особенно при разработке MVP.
Дополнительные улучшения и безопасность

Ваш API должен быть не только функциональным, но и безопасным. Вот что стоит добавить:
- CORS: для разрешения запросов с других доменов
- Helmet: для установки безопасных HTTP-заголовков
- Rate limiting: чтобы защититься от DDoS-атак
Установка CORS и Helmet:
```bash
npm install cors helmet
```
И подключение:
```javascript
const cors = require('cors');
const helmet = require('helmet');
app.use(cors());
app.use(helmet());
```
Также рекомендуется логировать запросы. Для этого удобно использовать пакет `morgan`.
Заключение: что вы узнали из этого туториала

Мы пошагово прошли процесс создания REST API на Express.js, начиная от инициализации проекта до подключения к базе данных и обеспечения безопасности. Такой учебник по REST API Express.js — не просто теория, а практическая инструкция, проверенная в реальных условиях. На сегодняшний день Express.js используется в более чем 40% Node.js-проектов, согласно GitHub Trends за 2024 год.
Если вы только начинаете, этот пошаговый туториал по Express.js даст вам прочную основу. А если вы уже работали с фреймворками, возможно, вы нашли новые полезные практики. В любом случае, создание REST API на Express.js остаётся отличным выбором для быстрого и надёжного backend-разработки.



