Содержание статьи

Node.js позволяет запускать JavaScript на серверной стороне, что делает возможным создание высоконагруженных приложений без необходимости перехода на другие языки. Для начала работы требуется установить актуальную версию Node.js с официального сайта nodejs.org и проверить установку через команду node -v, чтобы убедиться, что версия соответствует требованиям проекта.
После установки Node.js проект начинается с инициализации package.json с помощью команды npm init -y. Этот файл управляет зависимостями, скриптами запуска и метаданными проекта, что упрощает дальнейшее расширение функционала. Настройка структуры папок заранее помогает избегать хаоса при добавлении модулей и компонентов.
Для разработки серверной части чаще всего используется фреймворк Express, который подключается через npm install express. Express упрощает работу с маршрутами, запросами и middleware, позволяя сосредоточиться на логике приложения. В статье рассматриваются шаги по созданию сервера, настройке маршрутизации и проверке работы проекта локально, чтобы сразу получить работающий каркас приложения.
Установка Node.js и настройка рабочей среды
Для начала работы с Node.js необходимо установить последнюю стабильную версию. Посетите официальный сайт nodejs.org и выберите версию LTS. На Windows и macOS доступен установщик с графическим интерфейсом, на Linux предпочтительнее использовать пакетный менеджер.
Установка на Windows:
- Скачайте установщик .msi с сайта Node.js.
- Запустите установщик и отметьте опцию “Add to PATH”.
- Подтвердите установку Node.js и npm.
Установка на macOS:
- Используйте Homebrew:
brew install node. - Проверьте версию:
node -vиnpm -v.
Установка на Linux (Debian/Ubuntu):
- Обновите репозитории:
sudo apt update. - Установите Node.js и npm:
sudo apt install nodejs npm. - Проверьте установку:
node -v,npm -v.
Настройка рабочей среды:
- Создайте отдельную папку проекта:
mkdir my-node-project && cd my-node-project. - Инициализируйте проект:
npm init -yдля автоматического созданияpackage.json. - Установите рекомендованные инструменты:
npm install nodemon --save-devдля автоматического перезапуска при изменениях. - Настройте редактор кода с поддержкой JavaScript/Node.js, например VS Code, с расширениями ESLint и Prettier для контроля качества кода.
- Проверка работы: создайте файл
index.jsсconsole.log('Node.js работает');и выполнитеnode index.js.
Дополнительно рекомендуется настроить менеджер версий Node.js, например nvm, чтобы легко переключаться между версиями для разных проектов.
Инициализация проекта и создание package.json

Создайте рабочую папку проекта и перейдите в неё:
mkdir my-node-project
cd my-node-project
Для генерации package.json используйте команду:
npm init
Она запустит пошаговый мастер с вопросами о названии проекта, версии, описании, точке входа (index.js по умолчанию), лицензии и зависимостях. Для быстрого создания без ввода данных используйте:
npm init -y
После инициализации package.json содержит основные поля:
- name – название проекта, должно быть уникальным и в нижнем регистре.
- version – версия проекта, следуйте семантическому форматированию
MAJOR.MINOR.PATCH. - main – точка входа приложения, обычно
index.js. - scripts – команды для запуска и сборки, например
"start": "node index.js". - dependencies – библиотеки, необходимые для работы приложения.
- devDependencies – пакеты для разработки, тестирования и сборки.
Рекомендуется сразу добавить базовые скрипты:
npm set-script start "node index.js"
npm set-script dev "nodemon index.js"
После этого проект готов к установке зависимостей и разработке модулей Node.js.
Настройка структуры папок и файлов проекта
Создайте базовую структуру проекта для удобного управления кодом и ресурсами:
my-node-project/
├── node_modules/
├── src/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── services/
│ └── index.js
├── tests/
├── package.json
├── package-lock.json
└── .gitignore
Описание папок:
- src/ – основной код приложения.
- controllers/ – обработка логики запросов и взаимодействия между слоями.
- models/ – структура данных, схемы базы данных.
- routes/ – маршруты API или веб-приложения.
- services/ – вспомогательные функции и интеграции с внешними сервисами.
- tests/ – модульные и интеграционные тесты.
Файл index.js в src/ является точкой входа. Настройте .gitignore для исключения папок node_modules/, логов и временных файлов:
node_modules/
*.log
.env
Рекомендуется создавать отдельные конфигурационные файлы для среды (.env), что упрощает настройку переменных и подключение к базам данных.
Поддержание такой структуры упрощает масштабирование проекта и работу в команде.
Установка и использование npm-пакетов
Для установки пакетов используйте команду npm install <package>. По умолчанию пакеты добавляются в dependencies:
npm install express
Для пакетов, необходимых только в процессе разработки, используйте флаг --save-dev:
npm install nodemon --save-dev
Удаление пакета выполняется командой:
npm uninstall <package>
После установки пакеты становятся доступными через require или import в коде:
const express = require('express');
const app = express();
Для массового обновления всех пакетов используйте:
npm update
Проверка уязвимостей выполняется командой:
npm audit
Для управления версиями пакетов рекомендуется использовать семантическое версионирование (^ – обновления minor и patch, ~ – только patch).
Создание локального скрипта для запуска пакетов через npm выполняется в разделе scripts package.json:
"scripts": {
"start": "node src/index.js",
"dev": "nodemon src/index.js"
}
Создание простого сервера на Express

Установите Express:
npm install express
Создайте файл src/index.js и добавьте базовую конфигурацию сервера:
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;
app.get('/', (req, res) => {
res.send('Сервер работает');
});
app.listen(PORT, () => {
console.log(Сервер запущен на порту ${PORT});
});
Для автоматического перезапуска при изменениях установите nodemon и добавьте скрипт в package.json:
"scripts": {
"dev": "nodemon src/index.js"
}
Простейший маршрут можно расширять для обработки различных HTTP-методов. Пример таблицы с основными методами:
| Метод | Описание | Пример использования |
|---|---|---|
| GET | Получение данных с сервера | app.get('/users', handler) |
| POST | Создание новой записи | app.post('/users', handler) |
| PUT | Полное обновление записи | app.put('/users/:id', handler) |
| PATCH | Частичное обновление записи | app.patch('/users/:id', handler) |
| DELETE | Удаление записи | app.delete('/users/:id', handler) |
Для обработки JSON-запросов подключите middleware:
app.use(express.json());
Эта конфигурация позволяет сразу запускать сервер и создавать маршруты для дальнейшего развития приложения.
Работа с маршрутизацией и обработкой запросов
В Express маршруты определяются с помощью методов app.get, app.post, app.put, app.patch и app.delete. Они связывают URL-путь с функцией-обработчиком:
app.get('/users', (req, res) => {
res.json([{ id: 1, name: 'Иван' }]);
});
app.post('/users', (req, res) => {
const user = req.body;
res.status(201).json(user);
});
Для группировки маршрутов создайте отдельный модуль в routes/:
// routes/users.js
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.json([{ id: 1, name: 'Иван' }]);
});
router.post('/', (req, res) => {
res.status(201).json(req.body);
});
module.exports = router;
// src/index.js
const usersRouter = require('./routes/users');
app.use('/users', usersRouter);
Параметры маршрутов передаются через двоеточие в пути. Доступ к ним осуществляется через req.params:
app.get('/users/:id', (req, res) => {
const id = req.params.id;
res.json({ id, name: 'Иван' });
});
Для обработки query-параметров используйте req.query:
app.get('/search', (req, res) => {
const { term } = req.query;
res.json({ results: [`Результат по ${term}`] });
});
Middleware функции позволяют обрабатывать запросы до передачи их маршрутам. Пример логирования запросов:
app.use((req, res, next) => {
console.log(`${req.method} ${req.url}`);
next();
});
Использование такой структуры упрощает добавление новых маршрутов и обработку сложной логики API.
Запуск проекта и проверка работы локально
Для запуска проекта используйте команду:
npm start
Если в package.json определён скрипт для разработки с nodemon, выполните:
npm run dev
Сервер по умолчанию слушает порт, указанный в переменной PORT, или 3000. Проверить работу можно через браузер или инструменты типа curl:
curl http://localhost:3000/
Для проверки маршрутов API рекомендуется использовать Postman или Insomnia. Пример запроса POST с JSON-телом:
POST http://localhost:3000/users
Content-Type: application/json
{
"name": "Иван",
"age": 30
}
Ответ сервера можно проверить по статус-коду и содержимому JSON. Статус 200 или 201 означает корректную работу маршрута.
Для локального тестирования и отладки включите логирование запросов через middleware:
app.use((req, res, next) => {
console.log(`${req.method} ${req.url}`);
next();
});
После подтверждения работы локально проект готов к дальнейшему расширению и интеграции с базой данных или внешними сервисами.
Вопрос-ответ:
Зачем нужен файл package.json и какие данные в нём должны быть указаны?
Файл package.json хранит конфигурацию проекта и список зависимостей. В нём указываются название проекта, версия, точка входа (обычно index.js), скрипты для запуска и сборки, зависимости (dependencies) и инструменты для разработки (devDependencies). Это позволяет npm управлять установкой библиотек, запуском скриптов и поддерживать одинаковые условия для всех участников проекта.
Как правильно организовать структуру папок для Node.js проекта?
Рекомендуется разделять код по назначению. Основной код хранится в src/, маршруты — в routes/, логика обработки данных — в controllers/, модели базы данных — в models/, вспомогательные функции — в services/, тесты — в tests/. Такой подход облегчает поиск нужного модуля, добавление новых функций и поддержку проекта. Точка входа проекта обычно src/index.js, а папку node_modules/ не включают в систему контроля версий.
Как настроить и использовать маршруты в Express для разных HTTP-методов?
В Express маршруты создаются через методы app.get, app.post, app.put, app.patch и app.delete. Для упрощения структуры можно сгруппировать маршруты в отдельные модули в папке routes/ и подключать их через app.use. Параметры маршрутов доступны через req.params, а query-параметры — через req.query. Middleware функции, подключаемые через app.use, позволяют выполнять обработку запросов перед передачей их маршрутам.
Как проверить, что локальный сервер Node.js работает корректно?
Сервер можно запустить командой npm start или npm run dev для режима с автоматическим перезапуском. Проверить работу можно через браузер, отправив GET-запрос на http://localhost:3000/, или через инструменты типа Postman или curl для проверки API. Статус-коды 200 и 201 сигнализируют о корректной обработке запросов. Для отладки полезно добавить middleware, который выводит метод и путь каждого запроса в консоль.
