Создание проекта Node JS пошаговое руководство

Как создать проект node js

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

Как создать проект node js

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:

  1. Скачайте установщик .msi с сайта Node.js.
  2. Запустите установщик и отметьте опцию “Add to PATH”.
  3. Подтвердите установку Node.js и npm.

Установка на macOS:

  1. Используйте Homebrew: brew install node.
  2. Проверьте версию: node -v и npm -v.

Установка на Linux (Debian/Ubuntu):

  1. Обновите репозитории: sudo apt update.
  2. Установите Node.js и npm: sudo apt install nodejs npm.
  3. Проверьте установку: 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

Инициализация проекта и создание 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

Установите 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, который выводит метод и путь каждого запроса в консоль.

Ссылка на основную публикацию