Когда говорят о бекэнд разработке на Node.js, то в большинстве случаев подразумевают работу с Express.js. Это фреймворк с открытым кодом, который распространяется с помощью npm.

Если ты еще не знаешь, как работать с npm пакетами, то советую прочитать эти две статьи:

Чтобы добавить Express.js в проект, ты должен его установить:

npm install --save express

Флаг --save говорит о том, что express будет добавлен в секцию dependencies в файле package.json, где хранятся описания зависимостей твоего Node.js проекта.

После установки, добавим импорт:

import express from 'express';
const server = express();

Express.js и Node.js скрывают от нас множество сложностей связанных с обработкой HTTP запросов и всю низкоуровневую работу с сетью.

Чтобы добавить обработчик GET запросов, нам нужно вызвать функцию server.get(route, handler), где route - строка, описывающая путь к ресурсу, а handler - функция, которая будет выполнена, когда на путь route придет запрос типа GET.

server.get('/', (req, res) => {
  return res.send('Hello, Express.js!');
})

В качестве пути, мы используем /, но это может быть и что-то другое, например /about, /blog или /profile.

Функция обработчик принимает два параметра req и res. Они очень важны, но пока запомни, что можно отправить ответ с помощью функции res.send(). Если ты не вызовешь res.send(), а просто напишешь return 'hello world';, то сервер не отправит ответ.

Дальше, нам нужно запустить сервер.

Воспользуемся функцией listen(port, callback). Она ожидает 2 параметра. В качестве порта ты можешь выбрать любой свободный порт в своей системе, а callback - это функция, которая выполнится после того как сервер будет запущен. Обычно в ней выводят информацию о том, что сервер запущен на таком-то порту и все хорошо.

const port = 8080;

server.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});

Если ты выполнишь все по инструкции, сохранишь javascript код в файл index.js и напишешь node index.js, то ты запустишь свой первый сервер написанный с использованием фреймворка Express.js.

Пока он не будет доступен никому извне, но если ты попробуешь перейти в браузере по адресу localhost:8080, ты увидишь, что сервер отвечает Hello, Express.js!.

Вопросы?

— Как понять какой порт в системе свободен?
— Чтобы не усложнять, просто выбирай порты в диапазоне от 3000 до 9000.

— Что такое localhost?
— Это сокращенный адрес твоего компьютера. Также, ты можешь использовать полноценный IP адрес 127.0.0.1. Он является зарезервированным и всегда указывает на локальный компьютер. Такая “ссылка на самого себя”.

— Что произойдет, если я попробую перейти на localhost:8080/about, но не реализую этот маршрут в server.get?
— Сервер вернет ошибку 404, которая значит, что запрашиваемый ресурс не найден.