Backend · Урок 21

Node.js и Express

До сих пор JavaScript жил только в браузере. Node.js запускает его на сервере: теперь мы сами отвечаем на запросы, отдаём данные и строим API. Это ваш первый шаг в backend-разработку.

Что такое Node.js и Express

Node.js — среда исполнения JavaScript вне браузера. Express — самый популярный фреймворк поверх неё: превращает «получил запрос — отдал ответ» в пару строк. Устанавливаем Express как обычный npm-пакет.

npm init -y
npm install express

# server.js
const express = require("express");
const app = express();

app.get("/", (req, res) => {
  res.send("<h1>Привет из Node.js!</h1>");
});

app.listen(3000, () => console.log("Сервер на http://localhost:3000"));
ℹ️
req — то, что прислал клиент (параметры, тело, заголовки); res — то, что мы вернём. Запрос вроде GET /products — это «путь + метод», а обработчик — колбэк для этой пары.

Маршруты и параметры

Маршруты пишутся под каждый метод и путь. Параметры из адреса ловятся через :name, а из строки запроса — через req.query.

app.get("/users", (req, res) => {
  res.json([{ id: 1, name: "Аня" }, { id: 2, name: "Петя" }]);
});

app.get("/users/:id", (req, res) => {
  res.send("Пользователь с id=" + req.params.id);
});

app.get("/search", (req, res) => {
  res.send("Ищем: " + req.query.q);
});

REST API: коротко

💡
Для req.body в Express нужен парсер JSON: app.use(express.json()). Без него тело запроса прилетит «пустым».

Статика и структура

Готовый фронт-проект сервер раздаёт как статику, а создаём один server.js (в больших проектах — маршруты по файлам).

app.use(express.static("public"));
// public/ — оттуда браузеру отдаются css, js, картинки
// поправляем и перезапускаем: node server.js, либо node --watch server.js
⚠️
После правок сервера его нужно перезапустить. Вместо ручного перезапуска — node --watch server.js (рестарт сам) или nodemon. Это не магия статики: JS сервер — это процесс, а не файл в браузере.