Podstawy NodeJS
BEZPŁATNY WEBINAR
szkolenia@vavatech.pl
Agenda
1. Poznajemy Node.js
2. Architektura Node.js
3. Instalujemy Node.js
4. System modułów w Node.js
5. NPM w pigułce
6. Asynchroniczne programowanie
4. Tworzymy prosty serwer HTTP
5. Poznajemy framework Express
6. Narzędzia do przeładowywania kodu
7. Debugujemy serwer HTTP
8. Deploy na Heroku / Azure
Node.js to wieloplatformowe środowisko uruchomieniowe JavaScript na licencji open-
source, które umożliwia użycie kodu JavaScript bezpośrednio na komputerze, bez
wykorzystania przeglądarki.
Node.js używa modelu sterowanego zdarzeniami oraz wykorzystuje w sposób
asynchroniczny, nieblokujący operacje wejścia/wyjścia (I/O) umożliwiając tym samym
tworzenie wydajnych, skalowalnych aplikacji.
Podstawą działania Node.js jest silnik V8, który został stworzony przez firmę Google na
potrzeby przeglądarki Chrome, do obsługi skryptów napisanych w języku JavaScript.
https://nodejs.org/
Historia Node.js
Node.js został opracowany przez Ryan Dahl w 2009 roku, na początku tylko dla Linuxa.
Sponsorowany przez firmę Joyent.
Czerwiec 2011, firma Microsoft współpracowała z firmą Joyent, aby pomóc w utworzeniu
oryginalnej wersji Node.js dla systemu Windows.
Od 2015 projektem zarządza niezależna fundacja Node.js będąca częścią fundacji Linux.
Historia Node.js
Członkowie Fundacji Node.js
• Asynchroniczność i sterowanie zdarzeniami
• Szybkość działania
• Wysoka skalowalność
• npm
• Społeczność
• JavaScript
• LTS (Long Term Support)
Główne funkcje/korzyści Node.js
• Strumieniowe danych
• Serwer API
• Mikroserwisy
Do czego wykorzystywany jest Node.js?
Ale nie tylko, Node.js znajdziemy wszędzie!
● Narzędzia dla programistów m.in.: Babel, Eslint, Typescript, Webpack
● Tworzenie aplikacji mobilnych, m.in: Ionic, React native, NativeScript
● Aplikacje desktopowe: Electron
● Internet rzeczy - Johny five http://johnny-five.io/
● Usługi chmurowe (AWS, Microsoft Azure, Google Cloud Platfrom),
np: Usługi Azure dla Node.js pozwalają na:
- Tworzenia aplikacji Node.js
- Tworzenie funkcji Node.js (serverless)
- Budowanie aplikacji w stosie MEAN z bazą CosmosDB
https://docs.microsoft.com/en-us/javascript/azure/?view=azure-node-latest
Zadania wymagające obliczeń mogą spowodować, że Twoja aplikacja stanie się
niedostępna albo powolna, następujące sytuacje mogą powodować problemy
wydajnościowe:
• synchroniczne I/O
• skomplikowane szablony do renderowania
• parsowanie dużych obiektów JSON (JSON.parse)
• wyrażenia regularne
• obliczenia kryptograficzne
Problemy związane z Node.js
Architektura Node.js
V8
(domyślny)
Chakra
Silniki JavaScript stosowane w Node.js
Twój kod
V8
Natywne moduły
Wiązania C++
libuv c-ares, http-parser, OpenSSL,zlib, nghttp2
System operacyjny
Instalacja Node.js
Instalacja i uruchomienie kodu w Node.js
Moduły, moduły
Node.js posiada prosty system ładowania modułów oparty na standardzie CommonJs. W
pliku Node.js pliki i moduły są w korespondencji jeden-do-jednego (każdy plik
traktowany jest jako oddzielny moduł).
Chcąc załadować jakiś moduł w Node.js używamy funkcji require(‘nazwa modułu’).
Każdy moduł używa obiektu module.exports aby udostępnić swoje API dla innych
modułów.
Obiekt module.exports każdego modułu jest wynikiem wywołania funkcji require.
Moduły w Node.js
Kroki, przez jakie przechodzi Node.js w momencie wywołania funkcji require :
• Resolving – szukanie absolutnej ścieżki do modułu
• Loading – ustalenie typu ładowanego pliku
• Wrapping – utworzenie prywatnego zasięgu dla modułu poprzez „owinięcie”
go we funkcje wrapera
• Evaluating – Wykonanie kodu przez VM (V8 Virtual Machine)
• Caching – Cachowanie rezultatu, dzięki czemu przy kolejnym żądaniu
modułu nie będzie trzeba przechodzić przez wszystkie poprzednie kroki
Jak działa require?
Node.js i moduły EcmaScript 2015 (ES6)
Standard EcmaScript (ES) 2015 wprowadził długo oczekiwaną składnię modułów
w JavaScript.
Moduły ES6 wprowadziły dwa słowa kluczowe:
● import - służy do zaimportowania modułu
● export - służy do wyeksportowania wartości z modułu
Node.js od wersji 8.5.0 ma eksperymentalne wsparcie dla modułów ES6 które
możemy włączyć przy pomocy flagi --experimental-modules a sam plik
używając składni ES6 musi mieć rozszerzenie .mjs.
node --experimental-modules index.mjs
npm w pigułce
NPM to menadżer pakietów używany przez aplikacje Node.js.
Rejestr npm obsługuje ponad 640,000 pakietów.
NPM jest tym czym Maven dla Java czy Composer dla PHP.
Podczas pracy z NPM korzystamy głównie ze strony NPM (https://npmjs.com) oraz z
narzędzia linii poleceń NPM.
Strona WWW oraz domyślnie narzędzie linii poleceń używają tego samego rejestru do
pokazywania i wyszukiwania pakietów.
Menedżer NPM instalowany jest podczas instalacji Node.js, ale warto go zaktualizować do
najnowszej wersji, komendą
npm install –g npm
Poznajemy npm
Node.js - sposoby obsługi
asynchronicznych wywołań
Callbacks
(oryginalny sposób)
Promise
(od wersji 4)
Async/Await
(od wersji 8)
PARTNERZY

Webinar - Podstawy Node.js

  • 1.
  • 2.
    Agenda 1. Poznajemy Node.js 2.Architektura Node.js 3. Instalujemy Node.js 4. System modułów w Node.js 5. NPM w pigułce 6. Asynchroniczne programowanie 4. Tworzymy prosty serwer HTTP 5. Poznajemy framework Express 6. Narzędzia do przeładowywania kodu 7. Debugujemy serwer HTTP 8. Deploy na Heroku / Azure
  • 3.
    Node.js to wieloplatformoweśrodowisko uruchomieniowe JavaScript na licencji open- source, które umożliwia użycie kodu JavaScript bezpośrednio na komputerze, bez wykorzystania przeglądarki. Node.js używa modelu sterowanego zdarzeniami oraz wykorzystuje w sposób asynchroniczny, nieblokujący operacje wejścia/wyjścia (I/O) umożliwiając tym samym tworzenie wydajnych, skalowalnych aplikacji. Podstawą działania Node.js jest silnik V8, który został stworzony przez firmę Google na potrzeby przeglądarki Chrome, do obsługi skryptów napisanych w języku JavaScript. https://nodejs.org/
  • 4.
    Historia Node.js Node.js zostałopracowany przez Ryan Dahl w 2009 roku, na początku tylko dla Linuxa. Sponsorowany przez firmę Joyent. Czerwiec 2011, firma Microsoft współpracowała z firmą Joyent, aby pomóc w utworzeniu oryginalnej wersji Node.js dla systemu Windows. Od 2015 projektem zarządza niezależna fundacja Node.js będąca częścią fundacji Linux. Historia Node.js Członkowie Fundacji Node.js
  • 5.
    • Asynchroniczność isterowanie zdarzeniami • Szybkość działania • Wysoka skalowalność • npm • Społeczność • JavaScript • LTS (Long Term Support) Główne funkcje/korzyści Node.js
  • 6.
    • Strumieniowe danych •Serwer API • Mikroserwisy Do czego wykorzystywany jest Node.js?
  • 7.
    Ale nie tylko,Node.js znajdziemy wszędzie! ● Narzędzia dla programistów m.in.: Babel, Eslint, Typescript, Webpack ● Tworzenie aplikacji mobilnych, m.in: Ionic, React native, NativeScript ● Aplikacje desktopowe: Electron ● Internet rzeczy - Johny five http://johnny-five.io/ ● Usługi chmurowe (AWS, Microsoft Azure, Google Cloud Platfrom), np: Usługi Azure dla Node.js pozwalają na: - Tworzenia aplikacji Node.js - Tworzenie funkcji Node.js (serverless) - Budowanie aplikacji w stosie MEAN z bazą CosmosDB https://docs.microsoft.com/en-us/javascript/azure/?view=azure-node-latest
  • 9.
    Zadania wymagające obliczeńmogą spowodować, że Twoja aplikacja stanie się niedostępna albo powolna, następujące sytuacje mogą powodować problemy wydajnościowe: • synchroniczne I/O • skomplikowane szablony do renderowania • parsowanie dużych obiektów JSON (JSON.parse) • wyrażenia regularne • obliczenia kryptograficzne Problemy związane z Node.js
  • 10.
  • 11.
  • 12.
    Twój kod V8 Natywne moduły WiązaniaC++ libuv c-ares, http-parser, OpenSSL,zlib, nghttp2 System operacyjny
  • 13.
    Instalacja Node.js Instalacja iuruchomienie kodu w Node.js
  • 14.
  • 15.
    Node.js posiada prostysystem ładowania modułów oparty na standardzie CommonJs. W pliku Node.js pliki i moduły są w korespondencji jeden-do-jednego (każdy plik traktowany jest jako oddzielny moduł). Chcąc załadować jakiś moduł w Node.js używamy funkcji require(‘nazwa modułu’). Każdy moduł używa obiektu module.exports aby udostępnić swoje API dla innych modułów. Obiekt module.exports każdego modułu jest wynikiem wywołania funkcji require. Moduły w Node.js
  • 16.
    Kroki, przez jakieprzechodzi Node.js w momencie wywołania funkcji require : • Resolving – szukanie absolutnej ścieżki do modułu • Loading – ustalenie typu ładowanego pliku • Wrapping – utworzenie prywatnego zasięgu dla modułu poprzez „owinięcie” go we funkcje wrapera • Evaluating – Wykonanie kodu przez VM (V8 Virtual Machine) • Caching – Cachowanie rezultatu, dzięki czemu przy kolejnym żądaniu modułu nie będzie trzeba przechodzić przez wszystkie poprzednie kroki Jak działa require?
  • 17.
    Node.js i modułyEcmaScript 2015 (ES6) Standard EcmaScript (ES) 2015 wprowadził długo oczekiwaną składnię modułów w JavaScript. Moduły ES6 wprowadziły dwa słowa kluczowe: ● import - służy do zaimportowania modułu ● export - służy do wyeksportowania wartości z modułu Node.js od wersji 8.5.0 ma eksperymentalne wsparcie dla modułów ES6 które możemy włączyć przy pomocy flagi --experimental-modules a sam plik używając składni ES6 musi mieć rozszerzenie .mjs. node --experimental-modules index.mjs
  • 18.
  • 19.
    NPM to menadżerpakietów używany przez aplikacje Node.js. Rejestr npm obsługuje ponad 640,000 pakietów. NPM jest tym czym Maven dla Java czy Composer dla PHP. Podczas pracy z NPM korzystamy głównie ze strony NPM (https://npmjs.com) oraz z narzędzia linii poleceń NPM. Strona WWW oraz domyślnie narzędzie linii poleceń używają tego samego rejestru do pokazywania i wyszukiwania pakietów. Menedżer NPM instalowany jest podczas instalacji Node.js, ale warto go zaktualizować do najnowszej wersji, komendą npm install –g npm Poznajemy npm
  • 20.
    Node.js - sposobyobsługi asynchronicznych wywołań
  • 21.
  • 22.