Развертывание проекта на Node.js Express локально выполняется в три этапа: установка зависимостей через npm install, запуск сервера командой npm start или node app.js, и проверка доступности приложения по адресу http://localhost:3000. Процесс займет не более 5 минут при наличии установленного Node.js и npm на компьютере.
Зачем это нужно
- Локальное развертывание позволяет тестировать код на своем компьютере перед загрузкой на боевой сервер
- Разработчик получает полный контроль над окружением и может проверить все функции приложения без влияния других сервисов
- Локальное тестирование выявляет ошибки и проблемы совместимости на ранних этапах разработки
- Node.js Express — легкий и быстрый фреймворк, который развертывается за считаные секунды на локальной машине
- Разработчик может использовать инструменты отладки, такие как console.log и debugger, для анализа работы кода
- Локальный сервер позволяет тестировать API без настройки CORS и других ограничений боевого сервера
- Возможность быстро менять конфигурацию приложения и видеть результаты в реальном времени
- Локальное развертывание экономит трафик и ресурсы, так как сервер работает на локальном компьютере
- Команда разработчиков может работать независимо друг от друга, не блокируя друг друга на общем сервере
- Тестирование базы данных, аутентификации и других критических компонентов выполняется безопасно локально
- Развертывание локально подготавливает разработчика к правильному развертыванию на production-сервере
- Node.js Express поддерживает горячую перезагрузку кода через nodemon, что ускоряет процесс разработки
Пошаговая инструкция
- Убедитесь, что Node.js установлен на вашем компьютере, открыв командную строку или терминал
- Введите команду
node --versionдля проверки установленной версии Node.js - Если Node.js не установлен, скачайте установщик с официального сайта nodejs.org и установите последнюю LTS-версию
- Проверьте, что npm установлен, введя команду
npm --versionв командной строке - Откройте проект Express в файловом менеджере или терминале, перейдя в директорию проекта
- Если проект находится на GitHub, клонируйте его командой
git clone https://github.com/username/project.git - Перейдите в директорию проекта, введя команду
cd project-name, где project-name это имя папки проекта - Убедитесь, что в корневой директории проекта находится файл
package.json - Если файла
package.jsonнет, инициализируйте новый проект командойnpm init -y - Установите зависимости проекта, введя команду
npm installв терминал - Дождитесь завершения установки всех пакетов, указанных в файле
package.json - После установки убедитесь, что создана папка
node_modulesс установленными пакетами - Если проект требует Express, но он не установлен, выполните команду
npm install express - Откройте главный файл приложения, обычно это
app.js,index.jsилиserver.js - Убедитесь, что в файле приложения присутствует слушатель портов, например
app.listen(3000, () => { console.log('Server running on port 3000'); }); - Если главный файл не существует, создайте новый файл
app.jsв корневой директории проекта - Добавьте базовый код Express приложения в файл
app.js - Пример кода:
const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello World'); }); app.listen(3000, () => { console.log('Server running on port 3000'); }); - Сохраните файл
app.js, нажавCtrl+Sв редакторе кода - В файле
package.jsonнайдите или создайте раздел"scripts" - Добавьте скрипт запуска в раздел scripts, например
"start": "node app.js" - Пример полного раздела scripts:
"scripts": { "start": "node app.js", "dev": "nodemon app.js" } - Сохраните файл
package.json - В терминале убедитесь, что вы находитесь в директории проекта, используя команду
pwdна Mac или Linux илиcdна Windows - Запустите приложение, введя команду
npm startв терминал - Приложение начнет работать, и вы должны увидеть сообщение
Server running on port 3000в терминале - Откройте веб-браузер и перейдите на адрес
http://localhost:3000 - Если приложение работает корректно, вы должны увидеть ответ от сервера, например текст
Hello World - Для разработки установите пакет nodemon, который автоматически перезагружает приложение при изменении файлов
- Введите команду
npm install --save-dev nodemonдля установки nodemon как зависимости разработки - В файле
package.jsonдобавьте скрипт"dev": "nodemon app.js"в раздел scripts - Запустите приложение в режиме разработки командой
npm run dev - Теперь при сохранении файла приложение будет автоматически перезагружаться без ручного перезапуска
- Для остановки сервера нажмите
Ctrl+Cв терминале - Если приложение требует переменных окружения, создайте файл
.envв корневой директории проекта - Добавьте переменные окружения в файл
.env, напримерPORT=3000иDATABASE_URL=mongodb://localhost:27017 - Установите пакет
dotenvкомандойnpm install dotenvдля загрузки переменных из файла.env - В начале файла
app.jsдобавьте строкуrequire('dotenv').config();для загрузки переменных окружения - Используйте переменные окружения в коде через
process.env.PORTилиprocess.env.DATABASE_URL - Если приложение требует базу данных, убедитесь, что БД запущена локально перед запуском приложения
- Для работы с MongoDB установите пакет mongoose командой
npm install mongoose - Подключитесь к MongoDB, добавив код
mongoose.connect(process.env.DATABASE_URL);в файл приложения - Проверьте логи в терминале на предмет ошибок подключения к базе данных
- Если приложение выдает ошибку
EADDRINUSE, значит порт 3000 уже занят другим процессом - Измените порт в коде приложения на другой, например 3001, или остановите процесс, использующий порт 3000
- Для поиска процесса, использующего порт 3000, выполните команду
lsof -i :3000на Mac или Linux - На Windows используйте команду
netstat -ano | findstr :3000для поиска процесса - Остановите найденный процесс, используя команду
kill -9 PIDна Mac или Linux илиtaskkill /PID PID /Fна Windows - Установите расширение REST Client в VS Code для тестирования API прямо из редактора
- Создайте файл
requests.httpв корневой директории проекта для записи HTTP-запросов - Пример запроса:
GET http://localhost:3000/илиPOST http://localhost:3000/api/users - Используйте встроенную консоль браузера для просмотра логов и ошибок приложения
- Откройте инструменты разработчика, нажав
F12илиCtrl+Shift+I, и перейдите на вкладку Console - Проверьте сетевые запросы на вкладке Network для анализа обмена данными между браузером и сервером
- Убедитесь, что все зависимости установлены правильно, проверив файл
package-lock.json - Для очистки установленных пакетов и переустановки удалите папку
node_modulesи файлpackage-lock.json - Затем выполните команду
npm installдля свежей установки всех зависимостей - После успешного развертывания локально приложение готово к развертыванию на production-сервер
Часто задаваемые вопросы
Какой порт используется по умолчанию для Express приложения и можно ли его изменить? По умолчанию используется порт 3000, но вы можете изменить его, отредактировав число в методе app.listen(портное_число) или используя переменную окружения process.env.PORT.
Что делать, если приложение запускается, но браузер выдает ошибку подключения при переходе на localhost:3000? Проверьте, что сервер действительно запущен в терминале, убедитесь, что адрес правильно введен в браузер, и проверьте, что приложение слушает на порту 3000 через консоль браузера и вкладку Network.
Нужно ли устанавливать nodemon и чем он отличается от обычного запуска через npm start? Nodemon автоматически перезагружает приложение при изменении файлов, что ускоряет разработку, тогда как обычный запуск требует ручного перезапуска сервера после каждого изменения кода.