Показатель:
- Введение
- Запуск сервера
- Простой способ сделать маршрутизацию
- Различные методы чтения и отправки файла
- Модульность нашего кода
- 206 Статус частичного содержания
- Заключение
1. Введение:
Прошло некоторое время, и вы видели все учебники на YouTube, которые вы нашли, не хотите вкладывать деньги в курсы udemy и начните читать всю документацию, которую сможете.
Мало того, вы также начинаете читать интересные блоги с крутыми и эзотерическими примерами NodeJS и, возможно, только возможно, у вас есть близкая встреча третьего рода с некоторыми реальными проектами на Github.
Это круто, приятель. Вы находитесь в любопытной стороне нашего вида.
Что ж, в этой статье мы создадим пример сервера NodeJS со вкусом ванили, который транслирует аудио и видео из файла.
Без рамок? Ну да.
Делаете какие-то ошибки? Ну да, наверное… Но спасибо Шиве за Интернет и сообщество, которые позволяют нам децентрализовать знания и учиться путем обмена.
В этой первой части статьи мы дойдем до 3-го раздела указателя, затем мы будем делать больше разделов, поскольку нам это нужно, чтобы охватить все темы.
2. Запуск сервера
Окончательный код можно увидеть здесь:
LautaroJayat/vainilla-nodejs-206-partial-content-streaming
Быстрый сервер vainilla для потоковой передачи медиаконтента из файлов с использованием статуса «206 Partial Content и связанных с ним заголовков. …github.com»
А окончательный проект можно увидеть работающим в Heroku по этой ссылке.
Прежде чем начать, мы предполагаем, что вы немного знакомы с Javascript/NodeJS, CSS и HTML5. Также вам понадобится аудио .mp3 и видео .mp4 для потоковой передачи чего-либо.
Начнем:
Сначала откройте IDE и создайте файл index.js.
Вы можете видеть, что в коде есть некоторые комментарии, пожалуйста, ознакомьтесь с ними, если вам нужно больше информации о том, что происходит.
Откройте консоль и введите node index.js
. Обратите внимание, что консоль выводит последний журнал консоли, который мы записали в коде. Другой будет выводить только тогда, когда HTTP-запрос достигает порта, который мы слушаем. На самом деле, откройте браузер в localhost:3000
и вы увидите, что консоль выводит console.log()
то, что он написал в createServer()
функции.
Теперь давайте попробуем это: замените createServer()
function на это:
Теперь снова запустите свой сервер, перейдите к localhost:3000
и проверьте вывод в консоли… вы это почувствовали, не так ли? Безумно выглядящий объект длиной около 600 строк с огромным количеством эзотерических знаний, которые только и ждут, чтобы их понял какой-нибудь любопытный нуб вроде вас и меня.
Если вы сделаете себе кольцо защиты, выпьете гномьей крови и начнете читать, то обнаружите, что около строки ~470 можно найти следующее: url:'/’, method:'GET’, statusCode: null.
Мы будем использовать этих маленьких ребят для добавления функциональности нашему серверу.
3. Простой способ сделать маршрутизацию
Давайте попробуем это:
Если это не сработает, перейдите к нашей первой суть и не забудьте заменить только http.createServer()
function.
Давайте проанализируем то, что мы только что написали:
- У нас есть переменная, которая содержит этот URL-адрес в объекте запроса.
- У нас есть оператор if, который проверяет, находимся ли мы в нашем самом основном URL-адресе.
- И тогда мы начинаем использовать мистический объект
response
.
Как сказано в документации NodeJS:
Объект запроса составляется следующим образом:
request.write(chunk[, encoding][, callback])
Он отправляет «кусок» тела, и его можно вызывать много раз, чтобы записать полное тело. У него также есть необязательный аргумент кодировки, для которого мы установили значение UTF-8, но он используется только при отправке строки.
Кроме того, можно установить функцию обратного вызова, которая срабатывает при успешном сбросе всех данных.
Если вы хотите узнать немного больше о request.write(), вот ссылка на документацию:
В нашем случае, если вы открыли браузер и проверили, как он работает, а затем посмотрели на свой терминал, вы увидели классный console.log(), который поместил "console.log из обратного вызова функцию!». Да, это сработало только после того, как все данные были отправлены в браузер.
На данный момент я думаю, что нам больше не нужен Express. Мы сделали. Увидимся на следующей вечеринке Mr. Senior Developer.
Нет, просто шучу. Но… у нас что-то есть. Хотя это всего лишь простой текст, это начало чего-то большого.
Что бы произошло, если бы мы могли сказать компьютеру отображать это как HTML? Не волнуйся, мой дорогой друг, мы в будущем!
Оберните теги ‹h1›‹/h1› той строки, которую мы передаем в качестве первого аргумента функции res.write()
. Это должно выглядеть примерно так:
res.write('<h1>Yea! its working! Back to the future!</h1>', 'utf-8');
И теперь он у вас есть. Несмотря на то, что вам не нужно было устанавливать для заголовка «Content-Type» значение «text/html», браузер знал, что вы пытаетесь сделать.
Представьте, что… столько силы в таком маленьком заклинании!
Интерлюдия:
Это все для первой части статьи. Теперь вы можете прогуляться, завести друзей, погладить собаку или даже позволить собаке погладить вас.
В следующих разделах мы постараемся охватить большинство остальных тем, упомянутых в указателе.
Если вам понравилось, пожалуйста, поделитесь в социальных сетях или дайте мне знать каким-либо образом.
Если вам не понравилось, пожалуйста, дайте мне знать, чтобы я мог улучшить содержание.
Спасибо, что нашли время прочитать.