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ść i sterowanie zdarzeniami
• Szybkość działania
• Wysoka skalowalność
• npm
• Społeczność
• JavaScript
• LTS (Long Term Support)
Główne funkcje/korzyści 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
8.
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
15. 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
16. 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?
17. 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
19. 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