Найти тему

Как написать свой первый сервер на Node Js?

Оглавление

В предыдущей части мы рассмотрели как отправлять запрос на сервер, но мы все еще не знаем как его обработать. Эта часть посвящена именно этому.

обложкаПише
обложкаПише

Простейшая обработка запросов

Для простоты я буду использовать node js с фреймворком express. Сперва убедимся, что установлены node js и npm. Они нужны для запуска javascript вне браузера и удобной работы с пакетами. Создадим пакет, с помощью команды npm init, а также такую архитектуру:

-2

В package.json изменим “main” на “server.js”. После установим пакеты для разработки: npm install express body-parser. Заполним файлы:

Код нашего сервера.

Js скрипт на странице.

Html разметка страницы

Хорошо, теперь у нас есть сервер. Как его запустить? Для этого пропишем в терминале “node server.js”. После в браузере перейдем по ссылке http://localhost:3000/. Увидим, что все работает. Вот так выглядит простейшая обработка запросов. На странице размещены форма и кнопка, при взаимодействии с которыми на сервер отправляются запросы с сообщениями. Сервер принимает запрос и отвечает клиенту его же сообщением. Для большего количества запросов существует Routing.

Routing (маршрутизация)

Допустим, что у нас есть сайт со статьями. И действия можно поделить на различные маршруты. Например:

Маршрутами тут будут являться articles и auth. Было бы куда удобней, если обработка запросов разных маршрутов находилась в разный файлах. Для примера создадим папку routes, а в ней 2 файла: “articles.js” и “auth.js”. Поместим в них немного кода:

articles.js

auth.js

Изменим код сервера:

Теперь для каждого из маршрутов определен свой обработчик.

Middleware

Middleware - промежуточная обработка. На ней, кстати, основан routing. Работает это так: мы определяем несколько обработчиков, после, когда придет запрос, они начинают вызываться , один за одним, в порядке их определения. Если один из обработчиков возвращает значение, то цепь вызовов прекращается. Для примера можно привести проверку авторизации. Если пользователь не авторизован, то его можно перенаправить на страницу входа, если же он авторизован, то отправить ему запрошенную им страницу. Еще как пример можно сделать логгер, который будет выводить url каждого из запросов пользователя.

Вот пример middleware logger'a:

Так как Http не хранит состояние, были созданы cookie. В них можно записывать разную информацию в формате строки. Она будет отправляться с каждым запросом. Редактировать куки можно с обеих сторон. Для их чтения и записи нужно установить пакет cookie-parser. Делается это очень просто: npm install cookie-parser.

Код сервера:

Что дальше?

Это были лишь основы backend’а. Впереди еще шаблонизаторы, работа с базами данных, сессии, аутентификация и авторизация. Изучив эти вещи, вы сможете написать практически все, что угодно.

Если вам понравилась статья, поблагодарите автора лайком, а канал подпиской.

МЫ В ВК

Пишите свои вопросы в комментарии.