6.4 KiB
6.4 KiB
EEV_Proj Server
Этот репозиторий содержит серверную часть проекта EEV_Proj (ветка server), реализованную с использованием Node.js и Express. Сервер отвечает за API, взаимодействует с базой данных и обслуживает статические файлы фронтенда.
Оглавление
Описание проекта
Проект EEV_Proj представляет собой веб-приложение с клиентской и серверной частями. Ветка server содержит сервер, который:
- Обрабатывает HTTP-запросы и предоставляет REST API.
- Подключается к базе данных для хранения и извлечения данных.
- Раздаёт статические файлы фронтенда (HTML/CSS/JS).
- Поддерживает кластерный запуск через PM2.
Технологии
- Node.js — среда выполнения JavaScript.
- Express — веб-фреймворк для Node.js.
- PM2 — процесс-менеджер для Node.js приложений.
- MySQL / PostgreSQL / MongoDB (в зависимости от вашей настройки) — СУБД.
- JavaScript (ES6+) — основной язык разработки.
Установка и запуск
Клонирование
git clone https://github.com/IprokK/EEV_Proj.git
cd EEV_Proj
git checkout server
Установка зависимостей
npm install
Настройка окружения
Создайте файл .env в корне проекта и добавьте необходимые переменные:
# Сервер
PORT=3000
# База данных
DB_HOST=localhost
DB_PORT=5432
DB_USER=your_username
DB_PASS=your_password
DB_NAME=your_database
Запуск проекта
-
Обычный запуск
node server.js -
Через PM2
pm2 start ecosystem.config.js --env production
Откройте браузер и перейдите по адресу http://localhost:<PORT>/.
Структура проекта
EEV_Proj/
├── public/ # Статические файлы фронтенда (HTML, CSS, JS)
├── src/ # Исходники клиентской части:
│ ├── index.html # Основной HTML-шаблон приложения
│ ├── index.js # Точка входа React: монтирует корневой компонент
│ ├── App.js # Корневой React-компонент приложения
│ ├── components/ # Папка переиспользуемых React-компонентов
│ │ └── … # Компоненты (например, Header, Footer, Dashboard и т.д.)
│ ├── services/ # Модуль для работы с API (REST-запросы к серверу)
│ │ └── api.js # Пример файла с конфигурацией запросов
│ ├── utils/ # Утилитарные функции и хелперы (валидация, форматирование)
│ ├── styles/ # Глобальные стили и темы (CSS/SCSS файлы)
│ └── assets/ # Статические ресурсы (изображения, шрифты)
├── .env # Переменные окружения (не хранится в репозитории)
├── db.js # Модуль подключения к базе данных
├── server.js # Точка входа сервера (Express application)
├── ecosystem.config.js # Конфигурация для PM2
├── package.json # Описание зависимостей и npm-скрипты
└── README.md # Описание проекта (вы находитесь здесь)
Основные модули
- server.js — стартовый файл, инициализирует Express, настраивает middleware, роуты и запускает сервер.
- db.js — конфигурирует подключение к базе данных через выбранный драйвер.
- public/ — содержит готовый к раздаче фронтенд (сборка или статические файлы).
- src/ — содержит исходники клиентской части (React-компоненты, сервисы, утилиты).
- ecosystem.config.js — позволяет управлять процессом сервера через PM2.
PM2 конфигурация
Файл ecosystem.config.js позволяет управлять процессом сервера в продакшене:
module.exports = {
apps: [{
name: "EEV_Server",
script: "server.js",
env: {
NODE_ENV: "development",
},
env_production: {
NODE_ENV: "production",
}
}]
};
Запуск в режиме продакшен:
pm2 start ecosystem.config.js --env production
pm2 logs EEV_Server
Контакты
Если у вас возникли вопросы или предложения, создайте issue в репозитории или напишите Ilya Nice напрямую.