1 00:00:00,000 --> 00:00:05,611 В этом видеоуроке мы кратко рассмотрим каким образом можно использовать для дальнейшего изучения Node.js 2 00:00:05,611 --> 00:00:13,575 такую технологию как Jupyter Notebook. Здесь у меня запущена Anaconda, приложение которое сосредотачивает в себе 3 00:00:13,575 --> 00:00:21,532 множество разных возможностей по использованию различных инструментов экосистемы Python. 4 00:00:21,532 --> 00:00:33,734 Как выясняется, существуют пересечения и с экосистемой JavaScript. Давайте запустим часть анаконды, которая управляет ноутбуками. 5 00:00:33,734 --> 00:00:43,169 Нажав на Launch. При этом открывается локальный веб-сервер, который я сделал доступным на внешнем сетевом интерфейсе. 6 00:00:43,169 --> 00:00:58,442 Мы это видим по адресу: 0.0.0.0 вместо 127.0.0.1. И таким образом к этому локальному серверу можно подключиться из локальной сети, 7 00:00:58,442 --> 00:01:08,337 а в принципе даже из глобальной, если у этого компьютера на котором я сейчас работаю имеется статический доступный публичный IP-адрес. 8 00:01:08,337 --> 00:01:18,453 И вот соответственно сейчас здесь имеется пустая папка, в которой находится папка js. И мы можем здесь нажать на кнопку New 9 00:01:18,453 --> 00:01:28,644 и выбрать JavaScript (Node.js). Поскольку Notebook это нечто что совмещает в себе возможности интерактивного документа, 10 00:01:28,644 --> 00:01:39,697 такого в том числе как google-документ, а также чего-то похожего на интерактивный терминал, который позволяет вводить результаты 11 00:01:39,697 --> 00:01:48,429 выполнения программного кода. Выполняемого с помощью того или иного ядра, в данном случае вы видите в правом верхнем углу Node.js, 12 00:01:48,429 --> 00:01:57,081 то мы можем писать пояснение и рядом исполнимый программный код. В частности, например для того чтобы 13 00:01:57,081 --> 00:02:05,854 получить версию платформы Node.js, которая используется для исполнения кода, мы можем написать здесь process, 14 00:02:05,854 --> 00:02:15,408 нажать Tab для того чтобы посмотреть подсказки и найти здесь свойство versions. Если теперь нажать Ctrl+Enter, 15 00:02:15,408 --> 00:02:25,419 то мы увидим подробную информацию о том, что здесь у нас поставлено и запущено. Это Node.js версии 14.5.0. 16 00:02:25,419 --> 00:02:35,869 Если не самая последняя, то одна из самых последних. Версия движка - V8, версия библиотеки - uv. Ну и т.д. 17 00:02:35,869 --> 00:02:44,983 Соответственно, мы можем добавлять эти островки кода, по необходимости перемежая их текстом и в данном случае 18 00:02:44,983 --> 00:02:55,783 выполнять код типичный для JavaScript, типичный для Node.js. Например у нас есть console.log, это объект 19 00:02:55,783 --> 00:03:04,151 который поддерживается различными JavaScript средами, такими как Node.js и браузер. И у нас есть встроенный в JavaScript 20 00:03:04,151 --> 00:03:11,628 объект Math, который содержит метод sqrt, который вычисляет значение квадратного корня от данного числа. 21 00:03:11,628 --> 00:03:21,293 Мы сейчас увидим, должны будем увидеть, здесь число 4. И действительно так оно и есть. Итак, поскольку в данном случае 22 00:03:21,293 --> 00:03:28,613 используется публичный сетевой интерфейс, то к такому ноутбуку можно подключиться из локальной сети и даже из глобальной. 23 00:03:28,613 --> 00:03:39,098 И тем самым может быть осуществлена демонстрация выполнения кода для определённой группы подключившихся слушателей 24 00:03:39,098 --> 00:03:49,251 или обучающихся. Но также разумеется существует и возможность использовать облачные различные решения, 25 00:03:49,251 --> 00:04:01,232 вот например платформа colab от Google, которая доступна в том числе через Google-диск. Правда на данном этапе там нет в качестве среды выполнения 26 00:04:01,232 --> 00:04:13,358 Node.js, но всегда можно поисследовать и найти какие-то другие варианты, это может быть решение связанное с Azure, 27 00:04:13,358 --> 00:04:26,138 с облаками такими как SberCloud и другими подобными. Очевидно, что такую среду можно точно также использовать и для запуска серверного веб-приложения, 28 00:04:26,138 --> 00:04:35,282 притом что она сама является серверным веб-приложением. Но перед тем как это продемонстрировать, напомним что 29 00:04:35,282 --> 00:04:46,015 с помощью инструментов управления пакетами мы можем пользоваться в наших проектах локально загруженными файлами. 30 00:04:46,015 --> 00:04:57,373 Вот например если мы инициализируем проект в данной папке и установим express в этот проект, то мы получим в папке 31 00:04:57,373 --> 00:05:10,059 node_modules папку express, которая содержит файлы библиотеки. Мы можем разместить папку с файлами express 32 00:05:10,059 --> 00:05:21,614 где-нибудь у себя на локальном компьютере, например в папке express и обращаться в дальнейшем в наших проектах 33 00:05:21,614 --> 00:05:30,182 не к пакету, который находится в репозитории в интернете, а к пакету который находится на нашем компьютере в локальной файловой системе. 34 00:05:30,182 --> 00:05:37,260 Это может пригодиться в том случае, если нужно например продемонстрировать работу с express локально, в условиях 35 00:05:37,260 --> 00:05:47,777 ограниченного доступа к интернету. В этой ситуации можно заранее соответственно загрузить файлы и потом ими пользоваться. 36 00:05:47,777 --> 00:05:58,861 Например в данном случае будет вот такой путь к express. Зная этот путь, мы теперь можем перейти в любую другую папку, 37 00:05:58,861 --> 00:06:06,789 инициализировать проект и далее добавить в него библиотеку, указав этот путь с префиксом file. 38 00:06:06,789 --> 00:06:14,437 После чего за долю секунды библиотека будет установлена уже не из интернета, а из файловой системы. 39 00:06:14,437 --> 00:06:26,797 И мы тогда можем зареквайрить express именно из этого пути, и соответственно запустить и получить приложение. 40 00:06:26,797 --> 00:06:36,626 Мы видим, что эта строка успешно исполнилась. И мы даже можем посмотреть теперь, что представляет собой App. 41 00:06:36,626 --> 00:06:49,255 Далее у нас имеется базовый код, который мы можем вставить сюда и убедиться в том, что по адресу: localhost:4321 42 00:06:49,255 --> 00:06:59,569 ничего не работает. Теперь нажатием Ctrl+Enter запускаем эту часть notebook, и снова обновляем страницу. 43 00:06:59,569 --> 00:07:08,489 Мы видим, что приложение запустилось. Такой вариант запуска очень полезен и нагляден на стадии изучения 44 00:07:08,489 --> 00:07:16,419 библиотеки, когда хочется одновременно видеть и код, и результат его исполнения для того чтобы исследовать структуру файлов 45 00:07:16,419 --> 00:07:21,884 библиотеки, и таким образом достичь более глубокого понимания происходящих процессов.