Express.js: создание REST API — туториал

Мы просто и по делу рассказываем про ИИ-инструменты для работы: сравнения, пошаговые гайды, бесплатные альтернативы и реальные сценарии применения. Помогаем выбрать между ChatGPT, Gemini, Claude, локальными моделями и десятками узкоспециализированных сервисов — от дизайна и HR до аналитики и SEO. Меньше хайпа, больше практики и экономии времени каждый день.

express.jsrest apinode.js

Express.js — один из самых популярных фреймворков для Node.js, когда нужно быстро поднять REST API. Он легковесный, понятный и отлично подходит как для учебных проектов, так и для production-разработки.

Что такое REST API

REST API — это интерфейс, через который клиент обменивается данными с сервером по HTTP. Чаще всего используются методы:

  • GET — получить данные
  • POST — создать запись
  • PUT/PATCH — обновить
  • DELETE — удалить

1. Установка Express.js

Создайте проект и установите зависимости:

mkdir express-api
cd express-api
npm init -y
npm install express

2. Базовый сервер ⚙️

Создайте файл app.js:

const express = require('express');
const app = express();

app.use(express.json());

app.get('/', (req, res) => {
  res.json({ message: 'API работает' });
});

app.listen(3000, () => {
  console.log('Сервер запущен на порту 3000');
});

express.json() нужен, чтобы сервер умел читать JSON в теле запроса.

3. Создание REST API для списка задач 📦

const express = require('express');
const app = express();

app.use(express.json());

let tasks = [
  { id: 1, title: 'Изучить Express.js' },
  { id: 2, title: 'Сделать REST API' }
];

app.get('/tasks', (req, res) => {
  res.json(tasks);
});

app.get('/tasks/:id', (req, res) => {
  const task = tasks.find(t => t.id === Number(req.params.id));
  if (!task) return res.status(404).json({ error: 'Задача не найдена' });
  res.json(task);
});

app.post('/tasks', (req, res) => {
  const newTask = {
    id: tasks.length + 1,
    title: req.body.title
  };
  tasks.push(newTask);
  res.status(201).json(newTask);
});

app.put('/tasks/:id', (req, res) => {
  const task = tasks.find(t => t.id === Number(req.params.id));
  if (!task) return res.status(404).json({ error: 'Задача не найдена' });

  task.title = req.body.title;
  res.json(task);
});

app.delete('/tasks/:id', (req, res) => {
  tasks = tasks.filter(t => t.id !== Number(req.params.id));
  res.status(204).send();
});

app.listen(3000);

4. Что важно в реальном проекте 🛠️

  • Проверяйте входные данные через Joi, zod или express-validator
  • Выносите роуты в отдельные файлы
  • Добавляйте обработку ошибок через middleware
  • Подключайте базу данных: PostgreSQL, MongoDB, MySQL
  • Используйте dotenv для переменных окружения

5. Как тестировать API 🔍

Для проверки удобно использовать:

  • Postman
  • Insomnia
  • curl
  • Thunder Client в VS Code

Почему Express.js выбирают так часто 💡

  • низкий порог входа
  • гибкая архитектура
  • огромное сообщество
  • подходит для микросервисов и backend для SPA/mobile

Если нужен быстрый старт в backend на Node.js, связка Express + REST API остаётся одним из самых практичных вариантов.

📚 Загляните также в подборку каналов про IT — там много полезного по backend, JavaScript, DevOps и разработке в целом.

🗣 Подборки каналов
🧠 Каталог ботов и приложений
🗺 Навигация

Читайте так же