Все посты

Что такое Node.js и зачем его изучать?

Saad Takhir · · 2 просмотра

Что такое Node.js?

Node.js — это среда выполнения (runtime), которая позволяет запускать JavaScript вне браузера: на сервере или на вашем компьютере. Он построен на движке V8 из Google Chrome, поэтому работает очень быстро.

Проще говоря: раньше JavaScript жил только в браузере, а с появлением Node.js на нём стало можно писать бэкенд, CLI-утилиты и даже десктопные приложения.

Как работает Node.js?

Главная идея Node.js — неблокирующий ввод-вывод (non-blocking I/O) и event loop.

Классические серверы открывают отдельный поток (thread) на каждый запрос и ждут, пока прочитается файл или ответит база данных. Node.js не ждёт: он передаёт задачу, переходит к следующему запросу и возвращается к ней через callback, когда результат готов.

import { readFile } from 'node:fs/promises'

console.log('1. Начали читать файл')

const data = await readFile('matn.txt', 'utf-8')
console.log('3. Файл прочитан:', data.length, 'символов')

console.log('2. Эта строка не ждёт')

Благодаря этому Node.js может одновременно обслуживать тысячи соединений, расходуя мало ресурсов.

Почему именно Node.js?

  • Один язык — и фронтенд, и бэкенд на JavaScript (или TypeScript). Меньше переключения контекста.
  • npm — крупнейшая в мире экосистема пакетов. Почти для любой задачи есть готовая библиотека.
  • Скорость — отлично подходит для real-time приложений (чаты, уведомления, онлайн-игры).
  • Большое сообщество — ответ на любой вопрос найти легко.
  • Современные возможности — fetch, встроенный тест-раннер (node:test) и режим --watch теперь есть прямо в Node.js.

Где используется?

  • REST и GraphQL API
  • Real-time приложения (WebSocket, чаты)
  • Telegram-боты
  • CLI-инструменты
  • Серверная часть fullstack-фреймворков вроде Next.js и Nuxt

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

Скачайте и установите LTS-версию с сайта nodejs.org, затем проверьте:

node -v
npm -v

Теперь создайте файл server.js:

import { createServer } from 'node:http'

const server = createServer((req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' })
  res.end('Привет, Node.js!')
})

server.listen(3000, () => {
  console.log('Сервер запущен: http://localhost:3000')
})

Запустите:

node --watch server.js

Откройте в браузере http://localhost:3000 — поздравляю, ваш первый сервер готов! Флаг --watch автоматически перезапускает сервер при изменении файла.

Когда Node.js не подходит?

Node.js — не лучший выбор для тяжёлых вычислений (кодирование видео, обработка больших объёмов данных, ML): такие задачи блокируют event loop. В этих случаях лучше подойдут worker_threads или другой язык (Go, Python, Rust).

Что дальше?

  1. Хорошо разберитесь с основами JavaScript, особенно с async/await и Promise.
  2. Напишите простой API на Express или Fastify.
  3. Подключите базу данных (PostgreSQL + Prisma или Drizzle).
  4. Переходите на TypeScript.

Node.js — одна из самых удобных дверей в мир бэкенда. Начните с маленького проекта и постепенно усложняйте. Удачи!

Поделиться · 0 репостов
Связаться