Когда говорят о бекэнд разработке на 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
, которая значит, что запрашиваемый ресурс не найден.