Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Установка и первый сервер

Чтобы начать, нужен проект Node.js с установленным пакетом express. Сервер — это обычный JavaScript-файл, который создаёт приложение и начинает слушать порт: номер, по которому браузер к нему обращается.

Создание проекта

Проверьте версию Node.js — нужна 22 или новее — и создайте папку проекта:

node -v
mkdir blog
cd blog
npm init -y
npm install express

npm init -y создаёт файл package.json, а npm install express скачивает Express в папку node_modules и записывает его в зависимости.

Включаем ES-модули

Откройте package.json и добавьте поле type, чтобы Node.js понимал import и export:

{
  "name": "blog",
  "type": "module",
  "dependencies": {
    "express": "^5.1.0"
  }
}

Остальные поля, которые создал npm init, можно оставить как есть.

Первый сервер

Создайте файл src/server.js:

// src/server.js
import express from 'express';
 
const app = express();
const PORT = 3000;
 
app.get('/', (req, res) => {
  res.send('Привет от блога!');
});
 
app.listen(PORT, (error) => {
  if (error) {
    throw error;
  }
  console.log(`Сервер запущен: http://localhost:${PORT}`);
});

express() создаёт приложение, app.get() добавляет маршрут для главной страницы, а app.listen() запускает сервер. Если порт занят, функция получит ошибку в первом аргументе.

Запуск

node src/server.js

В терминале появится строка «Сервер запущен: http://localhost:3000». Откройте этот адрес в браузере — на странице будет «Привет от блога!». Остановить сервер можно сочетанием клавиш Ctrl+C.

Перезапуск при изменениях

Node.js сам не замечает правки в коде: после каждого изменения сервер нужно перезапускать. Флаг --watch делает это автоматически:

node --watch src/server.js

Удобно записать обе команды в раздел scripts файла package.json:

{
  "scripts": {
    "dev": "node --watch src/server.js",
    "start": "node src/server.js"
  }
}

Теперь при разработке запускайте npm run dev, а на сервере — npm start.

Частая ошибка

Если забыть "type": "module", Node.js остановится с ошибкой Cannot use import statement outside a module. Добавьте поле в package.json — или, если проект старый, переименуйте файлы в .mjs. В этом курсе везде используется вариант с полем type.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.