Уроки Node JS

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

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

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

Відеоурок

Telegram group

Підписуйтесь на нашу групу в Телеграмі 🇺🇦

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

Потоки в 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 місяця

Також варто подивитися

Практика React JS / Разработка магазина (eCommerce)
9 уроків
Курс по NestJS с нуля / Разработка веб проектов
9 уроків
MERN Stack / Разработка веб-приложения
9 уроків
Изучение MongoDB / Работа с базой данных
8 уроків
Уроки Angular для начинающих
11 уроків
Курс по React JS для початківців
11 уроків
Коментарі
Додати коментар

Поки що коментарів немає