#8 – Отслеживание URL. Шаблоны HTML

#8 – Отслеживание URL. Шаблоны HTML

Node JS сервер может отображать полноценные HTML шаблоны и позволяет отслеживать разные URL адреса. За урок вы научитесь выполнять эти действия.

Видеоурок

Потоки данных

Потоки в Node JS – отличное средство, которое позволяет передавать огромные данные постепенно по небольшим кусочкам. Представьте себе огромную карту мира, которая загружается не сразу, а лишь небольшими частями. Таким образом пользователь сразу сможет просматривать отдельные её части, пока остальная карта будет еще подгружаться.


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


Для работы с потоками необходимо использовать модуль fs. В нём существуют методы createReadStream и createWriteStream, позволяющие читать и записывать данные в файлы.


Для вывода данных можно использовать событие под названием «data». В событии можно выводить отдельные кусочки данных как только они будут переданы и готовы к просмотру.


Метод pipe

Из-за частой реализации потоков данных была придумана функция, что автоматизирует весь процесс и позволяет его выполнить всего за 1 строчку кода. Функция называется pipe() и записывается следующим образом:

fs.createReadStream(__dirname + '/file.html').pipe(res);

Использование функции pipe() гораздо упрощает код и выглядит намного читабельнее.


Маршрутизация

Давайте научимся отслеживать URL-адрес и в зависимости куда перешел пользователь.


Для этого существует параметр request (запрос), который содержит значение url (адрес страницы на данный момент). Все что необходимо делать, так это проверять данное значение и в зависимости от него выдавать информацию пользователю.


Пример отслеживания URL:

const server = http.createServer((req, res) => {
	// В req.url находится текущий адрес страницы
	if (req.url === '/') {
		res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
		fs.createReadStream(__dirname + '/index.html').pipe(res);
	} else if (req.url === '/news/best/articles') {
		res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
		fs.createReadStream(__dirname + '/news-best.html').pipe(res);
	}
})

Мы проверяем «req.url» и при этом используем три знака равенства чтобы проверить не только на одинаковые значения, но и на одинаковый тип данных. Таким образом мы можем проверять любой URL-адрес и выдавать ту страницу, что будет подходить под нужный адрес.


Подобная реализация отслеживания URL может показаться сложной и совсем нечитабельной. Это действительно так, поэтому в курсе мы дополнительно будем изучать библиотеку Express, которая упрощает подобные задачки и делает код чище.

Материалы для курса

Чтобы скачивать материалы к видеокурсам необходимо оформить подписку на сайт

Онлайн редактор кода

Загрузка...

Задание к уроку

Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям

Большое задание по курсу

Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца

Также стоит посмотреть

Уроки Angular для начинающих
7 уроков
Курс по React JS для начинающих
11 уроков
Создание приложения на React JS / Использование API
7 уроков
Практика React JS / Разработка магазина (eCommerce)
9 уроков
Изучение стека MEAN: MongoDB, Express, Angular и Node JS
10 уроков
Изучение MongoDB / Работа с базой данных
8 уроков
Комментарии
Добавить комментарий

Пока комментариев нет