Bardzo szybkie wprowadzenie do Node.js

Podobne dokumenty
MEAN Stack - Node.js, express

MEAN Stack - Node.js, Express.js

MEAN Stack - Node.js, express

Aplikacje webowe z wykorzystaniem Node.js oraz Express

Co to jest NODE.JS? Nowoczesne środowisko programistyczne

Popularne dostępne rozwiązania. Najpopularniejsze środowiska programistyczne:

Zaawansowane Techniki WWW (HTML, CSS i NODE.JS)

Express.js i własne API - pomoc do lab02

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

MEAN Stack - Node.js, express

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Wprowadzenie. 1. Terminal WebRTC. LABORATORIUM 5: WebRTC komunikacja między terminalami.

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Wybrane działy Informatyki Stosowanej

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

server.listen(port, hostname, () => { console.log(`server running at });

Programowanie w Internecie

Materiały dla studentów Informatyki WSZiB w Krakowie

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Programowanie obiektowe

dziennik Instrukcja obsługi

Instrukcja instalacji oprogramowania dla środowiska MacOS

Mobilne aplikacje hybrydowe

Sieci komputerowe. Wykład 7: Warstwa zastosowań: DNS, FTP, HTTP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Node.js i TypeScript - jak zacz?

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Gerard Frankowski, Zespół Bezpieczeństwa PCSS. Nowoczesne technologie bliżej nas Poznań,

Instrukcja instalacji oprogramowania dla środowiska Linux

Tomasz Greszata - Koszalin

O sobie. Adam Kowalski. Absolwent informatyki Uniwersytetu Wrocławskiego Full-stack Developer w firmie Synergy Codes.

Redis, skrypty w języku Lua

Usługi sieciowe systemu Linux

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Instrukcja instalacji oprogramowania dla środowiska Linux

Instrukcja instalacji oprogramowania dla środowiska Windows

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Instrukcja instalacji aplikacji Comarch Smart Card ToolBox

WPROWADZENIE. Warto pamiętać o opcji autouzupełniania, której używamy naciskając klawisz [Tab]

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Programowanie i projektowanie obiektowe

INFRA. System Connector. Opis wdrożenia systemu

Czym jest router?... 3 Vyatta darmowy router... 3 Vyatta podstawowe polecenia i obsługa... 3 Zarządzanie użytkownikami... 3 Uzupełnianie komend...

Rejestracja użytkownika Bentley Często zadawane pytania techniczne

Testowanie aplikacji mobilnych z ukierunkowaniem na system Android

Quiz Aplikacja internetowa

Instrukcja instalacji oprogramowania dla środowiska Linux

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Dokumentacja techniczna

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Notowania Mobilne wersja BlackBerry. Instrukcja obsługi programu

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Instrukcje dotyczące systemu Windows w przypadku drukarki podłączonej lokalnie

Języki programowania wysokiego poziomu WWW

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Należy ściągnąć oprogramowanie Apache na platformę

W celu uruchomienia kontrolera należy w katalogu głównym kontrolera z wiersza poleceń wydać następujące polecenie: $ java -jar target/floodlight.

Technologie Informacyjne - Linux 2

Wireshark analizator ruchu sieciowego

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

ZPKSoft WDoradca. 1. Wstęp 2. Architektura 3. Instalacja 4. Konfiguracja 5. Jak to działa 6. Licencja

Definicja. Not Only SQL

Konfiguracja klientów SSH - PuTTY i WinSCP

Materiały dla studentów Informatyki WSZiB w Krakowie

Operatory zmiany sposobu przypisania standardowych strumieni >,<,>> Jeżeli pierwsze polecenie powiodło się to wykona drugie

Angular, cz. II. Tworzenie serwisów Web 2.0. dr inż. Robert Perliński

Instrukcja obsługi serwera FTP v

Podstawy technologii WWW

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

NoSQL Not Only SQL: CouchDB. I.Wojnicki, NoSQL. Apache CouchDB has started. Time to relax. Przetwarzanie dokumentów i widoków.

Kurs języka Ruby. Ruby on Rails ActionPack

Uruchamianie programów w systemie Linux, potoki, strumienie, procesy, alias

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Przewodnik instalacji i rozpoczynania pracy. dla DataPage+ 2012

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Dokumentacja fillup - MS SQL

SIP Studia Podyplomowe Ćwiczenie laboratoryjne Instrukcja

Specyfikacja API 1.0. Specyfikacja kontroli Konta systemu CashBill z wykorzystaniem API opartego na REST

Aplikacje WWW. Krzysztof Ciebiera. 3 kwietnia 2014

Dokumentacja interfejsu HTTPD. Platforma BSMS.PL Instrukcja podłączenia po przez http

Przewodnik instalacji i rozpoczynania pracy. Dla DataPage+ 2013

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat usługi DHCP.

Instrukcja instalacji oprogramowania dla środowiska MacOS

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

Przykładowe zagadnienia na sprawdzian z wiedzy ogólnej. Linux to nazwa: A. Programu biurowego. B. Systemu operacyjnego. C. Przeglądarki internetowej.

ActiveXperts SMS Messaging Server

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

System kontroli dostępu ACCO NET Instrukcja instalacji

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE. Tryb konsolowy ćwiczenie b

Comarch e-sklep Sync. wersja

Transkrypt:

ardzo szybkie wprowadzenie do Node.js 1/16 Bardzo szybkie wprowadzenie do Node.js Technologie zarządzania treścią dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki Teoretycznej i Stosowanej 4 października 2016

Bardzo szybkie wprowadzenie do Node.js 2/16 Bazy NoSQL Czerty bazy NoSQL: Redis - baza klucz-wartość, MongoDB - baza dokumentów, Cassandra - baza rodziny kolumn, neo4j - baza grafowa.

MEAN Stack Bardzo szybkie wprowadzenie do Node.js 3/16

Bardzo szybkie wprowadzenie do Node.js 4/16 Node.js https://nodejs.org/en/ platforma działająca po stronie serwera na bazie silnika Google Chrome V8, zaprojektowany przez Ryana Dahl w 2009 roku, ma służyć prostemu tworzeniu szybkich i skalowalnych aplikacji internetowych, open source, całkowicie darmowe, aplikacje napisane w Node.js działają na OS X, MS Windows i Linux ie, używane przez tysiące programistów na całym świecie. /* Program Hello World w Node.js */ console.log("hello World!");

Bardzo szybkie wprowadzenie do Node.js 5/16 Pełna lista modułów Node.js Dokumentacja Node.js, v5.10.0 Assertion Testing Buffer C/C++ Addons Child Processes Cluster Command Line Options Console Crypto Debugger DNS Domain Errors Events File System Globals HTTP HTTPS Modules Net OS Path Process Punycode Query Strings Readline REPL Stream String Decoder Timers TLS/SSL TTY UDP/Datagram URL Utilities V8 VM ZLIB

Bardzo szybkie wprowadzenie do Node.js 6/16 Użyteczne moduły w Node.js Najbardziej powszechnie i często używane moduły Node.js: moduł os (Operating System) - podstawowe infomacje związane z systemem operacyjnym (pamięć, procesor,...) moduł path - przechowywanie i przetwarzanie ścieżek plików i katalogów, moduł net - pozwala na tworzenie zarówno serwerów jak i klientów, łączenie się, przesyłanie informacji w postaci strumieniowej, moduł dns - pozwala na obsługę DNS (sprawdanie adresów, różne typy adresów DNS, kody błędów), moduł domain - pozwala na wychwytywanie nieobsłużonych błędów. var os = require("os"); console.log('endianness : ' + os.endianness()); console.log('type : ' + os.type()); console.log('platform : ' + os.platform()); console.log('total memory : ' + os.totalmem() + " bytes."); console.log('free memory : ' + os.freemem() + " bytes."); endianness : LE type : Linux platform : linux total memory : 8110882816 bytes. free memory : 4815204352 bytes.

Bardzo szybkie wprowadzenie do Node.js 7/16 REPL Terminal Read Eval Print Loop (REPL) - środowisko komputerowe, np. Linux Shell, w którym polecenia są automatycznie przetwarzane i wyniki są wyświetlane w trybi interakcyjnym. Node.js też ma takie środowisko: Read - wczytuje dane od użytkownika, parsuje do struktur JavaScript i przechowuje w pamięci, Eval - bierze wprowadzone dane i je oblicza, wyznacza wartości, Print - wyświetla wyniki, Loop - trzy powyższe przetwarza w pęltli aż do dwukrotnego nacieśnięcia Ctrl+c. $ node > 1 + ( 2 * 3 ) - 4 3 > a = 12 // zachowane w zmiennej i wyswietlone 12 > var b = 12 // zachowane w zmiennej ale nie wyswietlone (var) undefined > (a+b)*2 48 > console.log(a+b) 24 undefined

Bardzo szybkie wprowadzenie do Node.js 8/16 REPL Terminal - wiele linii i mamy możliwość pisania wyrażeń składających się z wielu linii, symbol podkreślenia ( ) zwraca ostatni wynik: > x = 5 5 > while(x>0) {... --x;... console.log(x);... } 4 3 2 1 0 undefined > x+8 8 > _ 8

Bardzo szybkie wprowadzenie do Node.js 9/16 REPL Terminal - polecenia Ctrl+c - przerywanie aktualnego polecenia, Ctrl+c dwa razy - zamykanie Node REPL, Ctrl+d - zamykanie Node REPL, Klawisze Góra/Dół - historia polecenie, potrzednie/następne polecenie, klawisz Tab - lista aktualnych komend,.help - lista wszystkich komend,.break albo.clear - wyjście z wieloliniowego wyrażenia,.save nazwapliku - zapis sesji Node REPL do pliku,.load nazwapliku - wczytanie zawartości pliku do bieżącej sesji.

Bardzo szybkie wprowadzenie do Node.js 10/16 npm npm - menadżer pakietów dla node.js (dla JavaScript). zbiór pakietów/modułów dla Node.js dostępnych online: https://www.npmjs.com/ narzędzie do instalacji pakietów Node.js, zarządza wersjami i zależnościami pakietów Node.js dokumnetacja - https://docs.npmjs.com/ najczęściej instalowane pakiety: npm, express, less, browserify, pm2,... $ npm --version $ sudo npm install npm -g $ npm install <Nazwa Modułu> $ npm install express

Bardzo szybkie wprowadzenie do Node.js 11/16 Tworzenie pakietu Tworzenie pakietu: npm init { } polecenie pyta o najważniejsze dane pakietu (proponując domyślne wartości), tworzony jest plik package.json, np.: "name": "rest", "version": "1.0.0", "description": "hello world restfull api", "main": "server.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ "restfull" ], "author": "rperlinski", "license": "ISC"

Bardzo szybkie wprowadzenie do Node.js 12/16 Tworzenie pakietu, instalacja Instalacja pakietów } mkdir rest; cd rest npm init - inicjalizacja, tworzy plik package.json npm install express, albo lepiej npm install --save express - dodaje zależności do pliku package.json:... "license": "ISC", "dependencies": { "express": "^4.13.4" }

Bardzo szybkie wprowadzenie do Node.js 13/16 Wywołania zwrotne - odczyt z pliku, przykład wywołanie synchroniczne var fs = require("fs"); var data = fs.readfilesync('dane.txt'); console.log(data.tostring()); console.log("koniec programu"); Litwo, Ojczyzno moja! ty jesteś jak zdrowie; Ile cię trzeba cenić, ten tylko się dowie,... Koniec programu wywołanie asynchroniczne var fs = require("fs"); fs.readfile('dane.txt', function (err, data) { if (err) return console.error(err); console.log(data.tostring()); }); console.log("koniec programu"); Koniec programu Litwo, Ojczyzno moja! ty jesteś jak zdrowie; Ile cię trzeba cenić, ten tylko się dowie,...

Bardzo szybkie wprowadzenie do Node.js 14/16 Pierwszy projekt w Node.js Większość aplikacji Node.js składa się z 3 części: import wymaganych modułów - używa się dyrektywy require, utworzenie serwera - serwer będzie oczekiwał na żadania klientów i zwracał odpowiedzi, odczytywanie żądań i zwracanie odpowiedzi - podstawowe działanie serwera. var http = require("http"); var server = http.createserver(function (request, response) { // Wysyłanie nagłówków protokołu HTTP // Status HTTP: 200 : OK, Content Type: text/plain response.writehead(200, {'Content-Type': 'text/plain'}); // Wysyłanie ciała odpowiedzi, niezależnie od rodzaju żądania response.end('pierwszy projekt w Node.js\n'); }); server.listen(5000); console.log('server działa na http://127.0.0.1:5000/');

Bardzo szybkie wprowadzenie do Node.js 15/16 Express http://expressjs.com/ Express to szybki, elastyczny (nie wymuszający konkretnych rozwiązań), minimalistyczny szablon aplikacji internetowych i mobilnych dla Node.js. Instalacja: $ npm install express --save

Bardzo szybkie wprowadzenie do Node.js 16/16 Express, Hello World hello.js var express = require('express'); var app = express(); app.get('/', function (req, res) { res.send('hello World'); }) var server = app.listen(5000, function () { var host = server.address().address var port = server.address().port console.log("przykładowa aplikacja nasłuchuje na http://%s:%s", host, port) }) Wynik: $ node hello.js Otwieramy w przeglądarce: http://localhost:5000/ Przykładowa aplikacja nasłuchuje na http://0.0.0.0:5000 Express używa funkcji zwrotnych z argumentami req i res (obiekty request i response), które zawierają bardzo dużo informacji i żądaniu i odpowiedzi.