Node.js
Как запустить сервер Node.js: простой HTTP-сервер и Express
Короткий ответ: создайте файл server.js, напишите в нем HTTP-сервер, выполните node server.js и откройте адрес http://localhost:3000 в браузере. Если страница отвечает текстом, сервер работает
Этот материал закрывает запросы «как запустить сервер node js», «node js как веб сервер», «server node», «сервер node js», «node js создание сервера», «запуск сервера node js» и похожие формулировки. Пользовательский интент здесь практический: человек хочет увидеть живой localhost, а не читать абстрактно про backend
Минимальный сервер без Express
Создайте папку
mkdir node-server-demo
cd node-server-demo
Создайте файл server.js
const http = require("http");
const server = http.createServer((request, response) => {
response.writeHead(200, { "Content-Type": "text/plain; charset=utf-8" });
response.end("Сервер Node.js работает");
});
server.listen(3000, () => {
console.log("Сервер запущен: http://localhost:3000");
});
Запустите
node server.js
В терминале должно появиться
Сервер запущен: http://localhost:3000
Теперь откройте в браузере
http://localhost:3000
Если вы видите текст «Сервер Node.js работает», значит сервер поднялся и отвечает на запрос
Почему терминал не возвращает курсор
Это нормальное поведение. Обычный скрипт выполнился и завершился бы, но сервер должен ждать запросы. Поэтому процесс остается запущенным, пока вы не остановите его
Чтобы остановить сервер, нажмите в терминале
Ctrl + C
После остановки адрес localhost:3000 перестанет отвечать
Что значит localhost
localhost — это ваш собственный компьютер. Когда вы открываете http://localhost:3000, браузер идет не в интернет, а обращается к программе, которая запущена локально на вашей машине
Число 3000 — порт. На одном компьютере может быть много программ-серверов, и порт помогает понять, к какой из них обращаться
Сервер на Express
Для реальных учебных проектов чаще используют Express. Он делает код маршрутов проще и понятнее
Инициализируйте проект и установите Express
npm init -y
npm install express
Замените содержимое server.js
const express = require("express");
const app = express();
app.get("/", (request, response) => {
response.send("Главная страница работает");
});
app.get("/about", (request, response) => {
response.send("Это страница о проекте");
});
app.listen(3000, () => {
console.log("Express-сервер запущен: http://localhost:3000");
});
Запустите
node server.js
Проверьте два адреса
http://localhost:3000
http://localhost:3000/about
Теперь вы видите не просто запуск Node.js, а основу backend-приложения: разные адрес ведут в разные обработчики
Как добавить команду npm start
В package.json можно добавить команду
{
"scripts": {
"start": "node server.js"
}
}
После этого сервер можно запускать так
npm start
Это удобнее, когда проект растет, потому что команда запуска остается одинаковой, даже если внутренний файл или параметры меняются
Мини-практика
Добавьте третий маршрут
app.get("/contacts", (request, response) => {
response.send("Контакты пока пустые");
});
Перезапустите сервер и откройте http://localhost:3000/contacts. Если страница отвечает, вы поняли базовую механику маршрутов
Частые ошибки
Порт уже занят Если терминал пишет, что порт занят, остановите старый сервер через Ctrl + C или поменяйте порт, например на 3001
Изменили код, но браузер показывает старый ответ Обычный node server.js не перезапускает сервер автоматически. Остановите процесс и запустите снова
Открыли файл server.js в браузере Серверный файл не нужно открывать как HTML. Его запускают через терминал, а в браузере открывают адрес localhost
Express не найден Проверьте, что вы выполнили npm install express в той же папке, где лежит server.js и package.json
Что почитать дальше по Node.js
Если нужен общий маршрут по теме, откройте рубрику Node.js. Для соседних задач пригодятся эти разборы:
- Как создать простейший HTTP-сайт на Node.js и Express
- Как в Node.js Express отдать файл по ссылке: sendFile и static
- Как достать данные из модуля с базой в Node.js Express
- Как запустить JS-файл через Node.js: терминал, папка и первый вывод