Скачать примерный проект в формате .zip
node-sample.zip
Примерное руководство по деплою проекта Node.js, созданного на фреймворке Express.js, в cPanel
Эта статья служит небольшим руководством, чтобы помочь вам запустить проект на Node.js (Express.js) на нашем хостинге через панель управления cPanel.
Статья включает следующие шаги:
Внимательно следите за процессом и выполняйте шаги в правильном порядке, так как это даст вам хорошее понимание того, как деплоить проект Node.js (Express.js), и позже вы сможете применить эту практику к своему собственному проекту.
Все шаги, использованные в этом руководстве, применимы к любому проекту Node.js, построенному на Express.js — различаться могут только имена файлов и настройки базы данных.
Выбранный нами примерный проект — "Tic-Tac Ledger", браузерная игра крестики-нолики для двух игроков. Мы также рассмотрим добавление таблицы лидеров для хранения результатов игр.
Проект состоит из сервера Express.js и статического фронтенда (HTML/CSS/JS, без этапа сборки). В качестве базы данных используется библиотека Knex — она позволяет переключаться между SQLite локально и MySQL на production без изменения SQL-кода.
migrations/ — папка с файлами, описывающими структуру базы данных (таблицы). Эти файлы создают таблицы games и leaderboard — одинаково для локальной SQLite и production MySQL.node_modules/ — папка со всеми библиотеками проекта. Её не нужно загружать на хостинг — она будет создана заново на production сервере через npm install.src/ — основной код проекта: маршруты сервера (routes/), игровая логика (gameLogic.js), подключение к базе (db.js) и статические файлы фронтенда (public/)..env — файл с секретами окружения и паролями. В production можно использовать интерфейс "Environment variables" в cPanel вместо этого файла.app.js — входной файл проекта. Запускает сервер Express, и именно этот файл вызывает cPanel/Passenger.knexfile.js — файл конфигурации базы данных. Содержит отдельные настройки для development (SQLite) и production (MySQL).package.json — файл со списком всех необходимых библиотек и их версий. Эквивалентен requirements.txt в Python.Полный проект предоставлен, пожалуйста, изучите его:
node-sample.zip
Откройте папку проекта в терминале и выполните:
Сначала планируем порядок действий:
.zip в папку поддоменаГотовы? Начнём!
Мы создаём поддомен node.scroll.uz для проекта.
Мастер баз данных в cPanel шаг за шагом проведёт вас через создание базы MySQL, её пользователя и назначение прав.
scroll_node (префикс scroll_ берётся из имени пользователя хостинга и может отличаться).scroll_node-user (у вас префикс может быть другим). Задайте надёжный пароль и сохраните его.Сохраните имя базы, имя пользователя и пароль.
Откройте "Setup Node.js App" в cPanel и нажмите "+ Create Application".
Заполните форму следующим образом:
node.scroll.uz, так как при создании поддомена cPanel создала папку с этим именем.app.js — входной файл сервера Express.Нажмите "Create".
Приложение Node.js создано. Важные моменты:
Используем "File Manager" в cPanel.
Не включайте в архив node_modules, dev.sqlite3 и .env — они не нужны или будут созданы заново на production.
Переименуйте .env.example в .env. Щёлкните правой кнопкой и выберите "Edit".
Нажмите "Save", чтобы сохранить изменения.
Откройте терминал cPanel и выполните команду, сохранённую ранее из "Setup Node App".
Затем выполните npm install, чтобы установить все библиотеки из package.json в правильном виртуальном окружении Node.js:
Чтобы применить все изменения, перезапустите Node.js App. Откройте "Setup Node.js App" в cPanel и нажмите кнопку перезапуска: