Илья Борисович Государев - Основы разработки веб-приложений на платформах Node.js и Deno
Название: | Основы разработки веб-приложений на платформах Node.js и Deno | |
Автор: | Илья Борисович Государев | |
Жанр: | Интернет, Учебники и самоучители по компьютеру, Программирование: прочее | |
Изадано в серии: | неизвестно | |
Издательство: | Университет ИТМО | |
Год издания: | 2023 | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Основы разработки веб-приложений на платформах Node.js и Deno"
Аннотация к этой книге отсутствует.
Читаем онлайн "Основы разработки веб-приложений на платформах Node.js и Deno". [Страница - 5]
,./)[0]));
После назначения права исполнения (chmod +х index.js) его можно
запускать как команду, например ./index.js (а если добавить путь к нему в
PATH то и просто по имени).
В случае использования await оборачивание кода в async-функцию...
(async 0 => {
})();
.. .необходимо в файлах js вне проекта поскольку на текущем этапе await
можно использовать вне функции только в модулях. Чтобы сделать файл
модулем, достаточно изменить его расширение на .mjs
Тогда сценарий сведётся к двум строкам:
const result = await (await
fetch('https://www.worldtimeserver.com/current_time_in GB.aspx')).text();
console.log(result.match(Ad\d:\d\d:\d\d ,./)[0]);
Второй способ задать режим модуля - использовать манифест проекта
package.json и добавить в описание type="module"
10
В этом сценарии используется самый примитивный способ извлечь
информацию - регулярный паттерн. Нет гарантии, что разработчики сайта
оставят строку времени такой же. Чуть лучше будет извлекать данные из тега,
который имеет вид
html •
• title TypeScript
S
Рисунок 4. Express в списке зависимостей проекта
Б) содержимое будет скачано из интернета, мы получим папку
node modules, в которой будут находиться папка проекта express и множество
папок его зависимостей. Содержимое папки express при этом не будет
включать собственную папку node modules.
Если мы хотим иметь express у себя на локальном компьютере, то можем
поместить содержимое папки express отдельно и выполнить в ней npm і, тогда
зависимости библиотеки express окажутся внутри в папке node modules.
Допустим, у нас после этого есть папка
/Users/ilyagosudarev^HfleKc^ncK.2021 /express
v EXPRESS
> lib
> node_modules
♦ History.md
js
index.js
К LICENSE
{} package.json
(D Readme.md
Рисунок 5. Express и папка node modules
Теперь в локальных проектах мы можем использовать этот путь чтобы
забирать express из локальной папки, а не из интернета
npm і /Users/ilyagosudarev/Яндекс.Диск.2021/express
Кроме того, мы можем загрузить пакет из произвольного источника,
указывающего на файл .tar.gz с архивом проекта или из репозитория. (Этот
файл распаковывается в папку package, в которой размещаются файлы
проекта.)
Чтобы создать на основе своего кода пакет, который затем можно
инсталлировать по URL, нужно указать в package.json имя и версию, а затем
выполнить npm pack
17
js
ПРОВОДНИК
index.js
is index.js >...
1
export const f = x => x.toU pperC aseO ;
^ О ТК РЫ ТЫ Е РЕДАКТОРЫ
ГРУППА 1
JS in d ex.js
package.json x
ГРУП ПА 2
X
(
p a c k a g e .jso n
V 2022072... [ \ E 7 О
#
j s in d ex.js
mypack29072022-1.2...
p a c k a g e .jso n
} package.json > Ѳ description
1
{
2
"name": "mypack29072022",
3
" v e rsio n ": " 1 .2 .3 " ,
4
" ty p e ": "module",
5
" d e s c rip tio n " : "demo package",
6
"main": " in d e x .js " ,
7
"a u th o r": "GossJS",
8
" lic e n s e " : "HIT"
9
>
10
ТЕРМИНАЛ
ПРОБЛЕМЫ
ВЫХОДНЫЕ ДАННЫЕ
КОНСОЛЬ ОТЛАДКИ
> СТРУК ТУРА
3qosudarev@MacBook-Pro-Ilya 20220729_021533 % npm pack
iot
lotic ■Ц m ypack29072022@ l. 2 . 3
> ВРЕМ ЕННАЯ ШКАЛА
> СЦ ЕН А Р И И NPM
Рисунок 6. Выполнение команды npm pack
Упражнение 1
Выполните в новой папке следующие действия:
1. npm init -у
2. npm i https://kodaktor.rU/mvpack29072022-l.2.3.tgz
X
packagejson
2 0 22072... f t
FT
О
v mypack29072022
Ѳ
1
2
3
4
5
<
"name": "20220729_023742",
" v e rs io n ": " 1 .0 .0 " ,
" d e s c rip tio n " :
"m ain": " in d e x .js " ,
Отладка >
JS index.js
() package.json
{ .package-lock.json
U package-lock.json
p a c k a g e .js o n
Рисунок 7.
6
7
8
9
10
11
12
13
14
15
16
" s c r ip ts " : {
" t e s t " : "echo V 'E rro r: no t e s t s p ec ifted V ' SA e x it 1"
}.
"keywords": П ,
" a u th o r":
" lic e n s e " : "ISC",
"d ep endencies": {
"mypack29072022": " h ttp s://k o d a k to r.ru /m y p a c k 2 9 0 7 2 0 2 2 -1 .2 .3 .tg z "
>
}
Изменившийся раздел зависимостей
3. Создайте файл index.mjs
Напечатайте в нём
import { f } from 'mypack29072022';
console.log(f( hello world'));
4. Выполните сценарий node index.mjs
18
Вы должны будете увидеть в консоли вывод заглавными буквами HELLO
WORLD
Напомним, что традиционным способом включения сценарием в веб
страницы был и остаётся элемент script. Этот вариант изначально не
подразумевал никакой модульности и, соответственно, изоляции фрагментов
кода друг от друга. Чтобы предотвратить порчу объявленных на глобальном
уровне имён, авторы кода и, особенно, библиотек, программисты привыкли
оборачивать код в IIFE типа IfunctionQ{...}(). На платформе Node.js была
реализована собственная модульность (CJS) на основе функции require, но она
не прижилась на браузерной стороне. На современном этапе более или --">
После назначения права исполнения (chmod +х index.js) его можно
запускать как команду, например ./index.js (а если добавить путь к нему в
PATH то и просто по имени).
В случае использования await оборачивание кода в async-функцию...
(async 0 => {
})();
.. .необходимо в файлах js вне проекта поскольку на текущем этапе await
можно использовать вне функции только в модулях. Чтобы сделать файл
модулем, достаточно изменить его расширение на .mjs
Тогда сценарий сведётся к двум строкам:
const result = await (await
fetch('https://www.worldtimeserver.com/current_time_in GB.aspx')).text();
console.log(result.match(Ad\d:\d\d:\d\d ,./)[0]);
Второй способ задать режим модуля - использовать манифест проекта
package.json и добавить в описание type="module"
10
В этом сценарии используется самый примитивный способ извлечь
информацию - регулярный паттерн. Нет гарантии, что разработчики сайта
оставят строку времени такой же. Чуть лучше будет извлекать данные из тега,
который имеет вид
html •
• title TypeScript
S
Рисунок 4. Express в списке зависимостей проекта
Б) содержимое будет скачано из интернета, мы получим папку
node modules, в которой будут находиться папка проекта express и множество
папок его зависимостей. Содержимое папки express при этом не будет
включать собственную папку node modules.
Если мы хотим иметь express у себя на локальном компьютере, то можем
поместить содержимое папки express отдельно и выполнить в ней npm і, тогда
зависимости библиотеки express окажутся внутри в папке node modules.
Допустим, у нас после этого есть папка
/Users/ilyagosudarev^HfleKc^ncK.2021 /express
v EXPRESS
> lib
> node_modules
♦ History.md
js
index.js
К LICENSE
{} package.json
(D Readme.md
Рисунок 5. Express и папка node modules
Теперь в локальных проектах мы можем использовать этот путь чтобы
забирать express из локальной папки, а не из интернета
npm і /Users/ilyagosudarev/Яндекс.Диск.2021/express
Кроме того, мы можем загрузить пакет из произвольного источника,
указывающего на файл .tar.gz с архивом проекта или из репозитория. (Этот
файл распаковывается в папку package, в которой размещаются файлы
проекта.)
Чтобы создать на основе своего кода пакет, который затем можно
инсталлировать по URL, нужно указать в package.json имя и версию, а затем
выполнить npm pack
17
js
ПРОВОДНИК
index.js
is index.js >...
1
export const f = x => x.toU pperC aseO ;
^ О ТК РЫ ТЫ Е РЕДАКТОРЫ
ГРУППА 1
JS in d ex.js
package.json x
ГРУП ПА 2
X
(
p a c k a g e .jso n
V 2022072... [ \ E 7 О
#
j s in d ex.js
mypack29072022-1.2...
p a c k a g e .jso n
} package.json > Ѳ description
1
{
2
"name": "mypack29072022",
3
" v e rsio n ": " 1 .2 .3 " ,
4
" ty p e ": "module",
5
" d e s c rip tio n " : "demo package",
6
"main": " in d e x .js " ,
7
"a u th o r": "GossJS",
8
" lic e n s e " : "HIT"
9
>
10
ТЕРМИНАЛ
ПРОБЛЕМЫ
ВЫХОДНЫЕ ДАННЫЕ
КОНСОЛЬ ОТЛАДКИ
> СТРУК ТУРА
3qosudarev@MacBook-Pro-Ilya 20220729_021533 % npm pack
iot
lotic ■Ц m ypack29072022@ l. 2 . 3
> ВРЕМ ЕННАЯ ШКАЛА
> СЦ ЕН А Р И И NPM
Рисунок 6. Выполнение команды npm pack
Упражнение 1
Выполните в новой папке следующие действия:
1. npm init -у
2. npm i https://kodaktor.rU/mvpack29072022-l.2.3.tgz
X
packagejson
2 0 22072... f t
FT
О
v mypack29072022
Ѳ
1
2
3
4
5
<
"name": "20220729_023742",
" v e rs io n ": " 1 .0 .0 " ,
" d e s c rip tio n " :
"m ain": " in d e x .js " ,
Отладка >
JS index.js
() package.json
{ .package-lock.json
U package-lock.json
p a c k a g e .js o n
Рисунок 7.
6
7
8
9
10
11
12
13
14
15
16
" s c r ip ts " : {
" t e s t " : "echo V 'E rro r: no t e s t s p ec ifted V ' SA e x it 1"
}.
"keywords": П ,
" a u th o r":
" lic e n s e " : "ISC",
"d ep endencies": {
"mypack29072022": " h ttp s://k o d a k to r.ru /m y p a c k 2 9 0 7 2 0 2 2 -1 .2 .3 .tg z "
>
}
Изменившийся раздел зависимостей
3. Создайте файл index.mjs
Напечатайте в нём
import { f } from 'mypack29072022';
console.log(f( hello world'));
4. Выполните сценарий node index.mjs
18
Вы должны будете увидеть в консоли вывод заглавными буквами HELLO
WORLD
Напомним, что традиционным способом включения сценарием в веб
страницы был и остаётся элемент script. Этот вариант изначально не
подразумевал никакой модульности и, соответственно, изоляции фрагментов
кода друг от друга. Чтобы предотвратить порчу объявленных на глобальном
уровне имён, авторы кода и, особенно, библиотек, программисты привыкли
оборачивать код в IIFE типа IfunctionQ{...}(). На платформе Node.js была
реализована собственная модульность (CJS) на основе функции require, но она
не прижилась на браузерной стороне. На современном этапе более или --">
Книги схожие с «Основы разработки веб-приложений на платформах Node.js и Deno» по жанру, серии, автору или названию:
Руслан Раянов - Управление проектом разработки сайта или веб-приложения Жанр: Интернет Год издания: 2015 |
Алекс Сучжон-Ким Пан - Укрощение цифровой обезьяны. Как избавиться от интернет-зависимости Жанр: Психология Год издания: 2014 |
А Ш Левин - Интернет для людей старшего возраста Жанр: Интернет Год издания: 2014 |