SlideShare a Scribd company logo
1 of 15
NodeJS
ITStep
Що таке NodeJS
JS - на початку створювався як браузерний язик, який має певні обмеження:
- не працює з ОС
- дуже обмежено взаємодіє з файловою системою
NodeJS - це платформа, яка дозволяє використовувати JS для розробки серверних
додатків. Має свій API, який вирішує вищезазначені проблеми. Платформа
написана на С++.
NodeJS перетворює JS на машинний код. Робиться це завдяки движку V8. Движок
працює разом з Libuv (багато-платформова C-бібліотека, що забезпечує підтримку
асинхронний ввід/вивід на основі цикла події). V8 розроблялось та підтримується
Google.
Що таке NodeJS
Движок V8 використовується в Google Chrome.
Окрім перетворення JS в машинний код NodeJS займається виділом
пам’яти під об’єкти та “збиранням сміття”.
Libuv забезпечує введення/ виведення на всіх OS (кросплатформенно).
Забезпечує роботу з файловою системою та мережою. Робиться це
асінхронно в циклі подій (Event Loop)
Переваги NodeJS
- швидкість, тому що використовується неблокуюче введення та
виведення
- backend + frontend пишемо на одній мові програмування
- має пакетний менеджер (npm), який має десятки тисяч бібліотек
для вирішення любих проблем
- швидке прототипування - можемо створити прототип додатка та
продемонструвати ідею
Встановлення NodeJS
- https://nodejs.org/en/ Скачуємо за посиланням (LTS version)
- Разом з NodeJS автоматично скачується npm
- В терміналі/консолі вводимо node -v, щоб перевірити версію
NodeJS
- так само можемо перевірити й версію npm: npm -v
Тепер ви можете запускати ваш JS код в терміналі VS Code ібо іншій IDE:
- В IDE відкрийти папку з вашим JS файлом/-ми
- відкрийте термінал та введіть в ньому node <file>
Використання npm. Package.json файл
Керування проектів, які працюють під NodeJS відбувається за допомогою
package.json файла. Package.json це ваша карта проекту. В ньому
прописуються всі залежності (посилання на пекеджі), скріпти (команди по
запуску проекта, тестуванню, форматуванню інше), можуть прописуватись
базові конфігурації бібліотекою, та багато іншої інформації.
Npm використовується і в frontend додатках, написаних на JS (React, Angular,
Vue).
Створюється package.json файл в корні проекту за допомогою команди npm
init
Команда npm init -y дозволить створити package.json з налаштуваннями “за
замовчуванням”
Dependencies/Dev dependencies
Всі бібліотекі, які нам потрібні для роботи додатку, і які ми будемо
використовувати через npm прописуються в розділах dependencies/
devdependencies файлу package.json.
В розділі dependencies прописуемо залежності які використовуються і в
продакшені і в розробці.
В розділі devdependencies прописуемо залежності які використовуються і в
тільки в розробці (development).
npm i <packagename> - додаємо залежність до розділу dependencies
npm i <packagename> -D - додаємо залежність до розділу dependencies
Scripts
Розділ “scripts” дозволяє прописувати команди/послідовність команд, які
використовуються для швидкого запуску, збірки, тестування додатку.
Приклад:
Перший скрипт запускає файл index.js -> npm run start
Другий скрипт теж запускає файл index.js але в режимі відстеження змін ->
npm run dev
Глобальні об’єкти
Це об’єкти, які доступні в любому js файлі NodeJS. Весь перелік об’єктів див. за
посиланням https://nodejs.org/api/globals.html
Часто уживані:
- console
- process
- module
- __dirname
- __filename
- URL
- fetch
- exporst
Модулі
NodeJS використовую модульну систему.
Тобто вся вбудована функціональність розбита на окремі пакети чи модулі.
Модуль є блоком коду, який може використовуватися повторно в інших
модулях.
При необхідності ми можемо підключати потрібні нам модулі.
NodeJS має свої вбудовані модулі:
- HTTP/HTTPS
- File system
- OS та інші
Повний перелік вбудованих модулів https://nodejs.org/api/
Модулі. Підключення
Для створення та підключення модулів використовується два синтаксіси:
CommonJS, ES6
*smth - об ‘єкт, константа, класс, функція
CommonJS ES6
import const obj = require(path); import smth from path; // for default export
import {smth} from path;
export module.exports = smth; export default smth;
export smth;
Модулі. Events
Events вбудований в NodeJS модуль для роботи з подіями.
Усі об’єкти, які генерують події, представляють екземпляри класу
EventEmitter.
За допомогою функції on() зв’язуємо подію, яка передається в якості першого
параметра, з callback функцією, яка передається в якості другого параметра,
та описує реакцію на подію.
Для генерації подій використовується emitter.emit(), в якій передається назва
події, та параметри, від яких залежить подія, якщо такі параметри є.
Модулі. Робота з файловою системою
Для роботи з файлами у Node.js призначений модуль fs.
Цей модуль дозволяє створювати, змінювати, видаляти файли.
Працює в асинхронному режимі, аде має аналоги основних методів і для
роботи в синхронному режимі.
- fs.mkdir/fs.mkdirSync - створення папки
- fs.readFile/fs.readFileSync - читання файлу
- fs.writeFile/fs.writeFileSync - запис файлу
- fs.rm/fs.rmSync - видалення файлу/папки
Модулі. HTTP
Використовуюється для роботи з сервером та протоколом http у Node.js
Приклад створення сервера:
Створення та реєстрація пакетів у npm
- реєструємость на https://www.npmjs.com/
- створюємо проект
- генеруємо package.json файл
- обов’язково вказуємо package name (унікальне для npm), версію
- бажано додати git repository, keywords
- логінимось в терміналі за допомогою команди npm login
- публікуємо командою npm publish
- при змінах пекеджу міняємо версію і публікуємо знову
Для більш зручної роботи по створенню та публікації пакетів є бібліотека np
https://www.npmjs.com/package/np

More Related Content

Similar to NodeJS.pptx

Web service lecture
Web service lectureWeb service lecture
Web service lectureeleksdev
 
Android: Інструменти програміста
Android: Інструменти програмістаAndroid: Інструменти програміста
Android: Інструменти програмістаAnatoliy Odukha
 
БОГДАН ЛОЗИНСЬКИЙ «Технічні аспекти для нетехнічних: автоматизація та баг реп...
БОГДАН ЛОЗИНСЬКИЙ «Технічні аспекти для нетехнічних: автоматизація та баг реп...БОГДАН ЛОЗИНСЬКИЙ «Технічні аспекти для нетехнічних: автоматизація та баг реп...
БОГДАН ЛОЗИНСЬКИЙ «Технічні аспекти для нетехнічних: автоматизація та баг реп...GoQA
 
System programing module 2
System programing module 2System programing module 2
System programing module 2Andrii Hladkyi
 
"Rethinking Continuous Delivery", Andrii Nasinnyk
"Rethinking Continuous Delivery",  Andrii Nasinnyk"Rethinking Continuous Delivery",  Andrii Nasinnyk
"Rethinking Continuous Delivery", Andrii NasinnykFwdays
 
Android Platform Architecture
Android Platform ArchitectureAndroid Platform Architecture
Android Platform ArchitecturePavel Bashmakov
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаютьсяcit-cit
 
Programne zabezpechenna(pz)
Programne zabezpechenna(pz)Programne zabezpechenna(pz)
Programne zabezpechenna(pz)Oksana Kutsenko
 
Global logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.jsGlobal logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.jsPavlo Iuriichuk
 
Павло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. HowtoПавло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. HowtoGlobalLogic Ukraine
 
ASP.NET Core лекція 02.pptx
ASP.NET Core лекція 02.pptxASP.NET Core лекція 02.pptx
ASP.NET Core лекція 02.pptxIhor34
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basicseleksdev
 
Computers and Computing Works lecture №7
Computers and Computing Works lecture №7Computers and Computing Works lecture №7
Computers and Computing Works lecture №7Lesia Sobolevska
 
Programne zabezpechenna
Programne zabezpechennaProgramne zabezpechenna
Programne zabezpechenna1cana1
 
Continious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій ГалушкаContinious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій ГалушкаHRdepartment
 
Uml+Patterns2
Uml+Patterns2Uml+Patterns2
Uml+Patterns2apofig
 

Similar to NodeJS.pptx (20)

ASP.Net basics
ASP.Net basics ASP.Net basics
ASP.Net basics
 
Web service lecture
Web service lectureWeb service lecture
Web service lecture
 
Android: Інструменти програміста
Android: Інструменти програмістаAndroid: Інструменти програміста
Android: Інструменти програміста
 
БОГДАН ЛОЗИНСЬКИЙ «Технічні аспекти для нетехнічних: автоматизація та баг реп...
БОГДАН ЛОЗИНСЬКИЙ «Технічні аспекти для нетехнічних: автоматизація та баг реп...БОГДАН ЛОЗИНСЬКИЙ «Технічні аспекти для нетехнічних: автоматизація та баг реп...
БОГДАН ЛОЗИНСЬКИЙ «Технічні аспекти для нетехнічних: автоматизація та баг реп...
 
Vue.js
Vue.jsVue.js
Vue.js
 
System programing module 2
System programing module 2System programing module 2
System programing module 2
 
"Rethinking Continuous Delivery", Andrii Nasinnyk
"Rethinking Continuous Delivery",  Andrii Nasinnyk"Rethinking Continuous Delivery",  Andrii Nasinnyk
"Rethinking Continuous Delivery", Andrii Nasinnyk
 
Android Platform Architecture
Android Platform ArchitectureAndroid Platform Architecture
Android Platform Architecture
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
 
Programne zabezpechenna(pz)
Programne zabezpechenna(pz)Programne zabezpechenna(pz)
Programne zabezpechenna(pz)
 
Global logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.jsGlobal logic tech talk switching to Angular.js
Global logic tech talk switching to Angular.js
 
Павло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. HowtoПавло Юрійчук — Перехід на Angular.js. Howto
Павло Юрійчук — Перехід на Angular.js. Howto
 
ASP.NET Core лекція 02.pptx
ASP.NET Core лекція 02.pptxASP.NET Core лекція 02.pptx
ASP.NET Core лекція 02.pptx
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basics
 
Computers and Computing Works lecture №7
Computers and Computing Works lecture №7Computers and Computing Works lecture №7
Computers and Computing Works lecture №7
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
 
Programne zabezpechenna
Programne zabezpechennaProgramne zabezpechenna
Programne zabezpechenna
 
Continious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій ГалушкаContinious integration jet brains teamcity. Віталій Галушка
Continious integration jet brains teamcity. Віталій Галушка
 
Tdd, ти де?
Tdd, ти де?Tdd, ти де?
Tdd, ти де?
 
Uml+Patterns2
Uml+Patterns2Uml+Patterns2
Uml+Patterns2
 

Recently uploaded

upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfupd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfssuser54595a
 
Автомат.звука с.інтегровані ігри для дітейpptx
Автомат.звука с.інтегровані ігри для дітейpptxАвтомат.звука с.інтегровані ігри для дітейpptx
Автомат.звука с.інтегровані ігри для дітейpptxvitalina6709
 
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»tetiana1958
 
О.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяО.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяAdriana Himinets
 

Recently uploaded (6)

Її величність - українська книга презентація-огляд 2024.pptx
Її величність - українська книга презентація-огляд 2024.pptxЇї величність - українська книга презентація-огляд 2024.pptx
Її величність - українська книга презентація-огляд 2024.pptx
 
Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
Віртуальна виставка «Аграрна наука України у виданнях: історичний аспект»
 
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdfupd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
upd.18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23_FINAL.pdf
 
Автомат.звука с.інтегровані ігри для дітейpptx
Автомат.звука с.інтегровані ігри для дітейpptxАвтомат.звука с.інтегровані ігри для дітейpptx
Автомат.звука с.інтегровані ігри для дітейpptx
 
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»Відкрита лекція на тему «Біологічний захист рослин у теплицях»
Відкрита лекція на тему «Біологічний захист рослин у теплицях»
 
О.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. БіографіяО.Духнович - пророк народної правди. Біографія
О.Духнович - пророк народної правди. Біографія
 

NodeJS.pptx

  • 2. Що таке NodeJS JS - на початку створювався як браузерний язик, який має певні обмеження: - не працює з ОС - дуже обмежено взаємодіє з файловою системою NodeJS - це платформа, яка дозволяє використовувати JS для розробки серверних додатків. Має свій API, який вирішує вищезазначені проблеми. Платформа написана на С++. NodeJS перетворює JS на машинний код. Робиться це завдяки движку V8. Движок працює разом з Libuv (багато-платформова C-бібліотека, що забезпечує підтримку асинхронний ввід/вивід на основі цикла події). V8 розроблялось та підтримується Google.
  • 3. Що таке NodeJS Движок V8 використовується в Google Chrome. Окрім перетворення JS в машинний код NodeJS займається виділом пам’яти під об’єкти та “збиранням сміття”. Libuv забезпечує введення/ виведення на всіх OS (кросплатформенно). Забезпечує роботу з файловою системою та мережою. Робиться це асінхронно в циклі подій (Event Loop)
  • 4. Переваги NodeJS - швидкість, тому що використовується неблокуюче введення та виведення - backend + frontend пишемо на одній мові програмування - має пакетний менеджер (npm), який має десятки тисяч бібліотек для вирішення любих проблем - швидке прототипування - можемо створити прототип додатка та продемонструвати ідею
  • 5. Встановлення NodeJS - https://nodejs.org/en/ Скачуємо за посиланням (LTS version) - Разом з NodeJS автоматично скачується npm - В терміналі/консолі вводимо node -v, щоб перевірити версію NodeJS - так само можемо перевірити й версію npm: npm -v Тепер ви можете запускати ваш JS код в терміналі VS Code ібо іншій IDE: - В IDE відкрийти папку з вашим JS файлом/-ми - відкрийте термінал та введіть в ньому node <file>
  • 6. Використання npm. Package.json файл Керування проектів, які працюють під NodeJS відбувається за допомогою package.json файла. Package.json це ваша карта проекту. В ньому прописуються всі залежності (посилання на пекеджі), скріпти (команди по запуску проекта, тестуванню, форматуванню інше), можуть прописуватись базові конфігурації бібліотекою, та багато іншої інформації. Npm використовується і в frontend додатках, написаних на JS (React, Angular, Vue). Створюється package.json файл в корні проекту за допомогою команди npm init Команда npm init -y дозволить створити package.json з налаштуваннями “за замовчуванням”
  • 7. Dependencies/Dev dependencies Всі бібліотекі, які нам потрібні для роботи додатку, і які ми будемо використовувати через npm прописуються в розділах dependencies/ devdependencies файлу package.json. В розділі dependencies прописуемо залежності які використовуються і в продакшені і в розробці. В розділі devdependencies прописуемо залежності які використовуються і в тільки в розробці (development). npm i <packagename> - додаємо залежність до розділу dependencies npm i <packagename> -D - додаємо залежність до розділу dependencies
  • 8. Scripts Розділ “scripts” дозволяє прописувати команди/послідовність команд, які використовуються для швидкого запуску, збірки, тестування додатку. Приклад: Перший скрипт запускає файл index.js -> npm run start Другий скрипт теж запускає файл index.js але в режимі відстеження змін -> npm run dev
  • 9. Глобальні об’єкти Це об’єкти, які доступні в любому js файлі NodeJS. Весь перелік об’єктів див. за посиланням https://nodejs.org/api/globals.html Часто уживані: - console - process - module - __dirname - __filename - URL - fetch - exporst
  • 10. Модулі NodeJS використовую модульну систему. Тобто вся вбудована функціональність розбита на окремі пакети чи модулі. Модуль є блоком коду, який може використовуватися повторно в інших модулях. При необхідності ми можемо підключати потрібні нам модулі. NodeJS має свої вбудовані модулі: - HTTP/HTTPS - File system - OS та інші Повний перелік вбудованих модулів https://nodejs.org/api/
  • 11. Модулі. Підключення Для створення та підключення модулів використовується два синтаксіси: CommonJS, ES6 *smth - об ‘єкт, константа, класс, функція CommonJS ES6 import const obj = require(path); import smth from path; // for default export import {smth} from path; export module.exports = smth; export default smth; export smth;
  • 12. Модулі. Events Events вбудований в NodeJS модуль для роботи з подіями. Усі об’єкти, які генерують події, представляють екземпляри класу EventEmitter. За допомогою функції on() зв’язуємо подію, яка передається в якості першого параметра, з callback функцією, яка передається в якості другого параметра, та описує реакцію на подію. Для генерації подій використовується emitter.emit(), в якій передається назва події, та параметри, від яких залежить подія, якщо такі параметри є.
  • 13. Модулі. Робота з файловою системою Для роботи з файлами у Node.js призначений модуль fs. Цей модуль дозволяє створювати, змінювати, видаляти файли. Працює в асинхронному режимі, аде має аналоги основних методів і для роботи в синхронному режимі. - fs.mkdir/fs.mkdirSync - створення папки - fs.readFile/fs.readFileSync - читання файлу - fs.writeFile/fs.writeFileSync - запис файлу - fs.rm/fs.rmSync - видалення файлу/папки
  • 14. Модулі. HTTP Використовуюється для роботи з сервером та протоколом http у Node.js Приклад створення сервера:
  • 15. Створення та реєстрація пакетів у npm - реєструємость на https://www.npmjs.com/ - створюємо проект - генеруємо package.json файл - обов’язково вказуємо package name (унікальне для npm), версію - бажано додати git repository, keywords - логінимось в терміналі за допомогою команди npm login - публікуємо командою npm publish - при змінах пекеджу міняємо версію і публікуємо знову Для більш зручної роботи по створенню та публікації пакетів є бібліотека np https://www.npmjs.com/package/np