Jeśli kiedykolwiek słyszałeś o Node.js, być może wiesz, że jest to jeden z najbardziej znanych i potężnych frameworków JavaScript. Od momentu premiery utrzymuje swoją dominującą pozycję na rynku IT. Nawet po wprowadzeniu nowego i żywego lubić , , Meteor itp., Popularność Node.js wydaje się nigdy nie zanikać. Zastanawiać się dlaczego? Cóż, z pomocą tego samouczka Node.js, dam ci pełny wgląd w to. Przygotuj się więc na zakochanie się w Node.js.
W tym samouczku Node.js omówię poniższe tematy:
- Co to jest Node.js?
- NPM (Node Package Manager)
- Moduły Node.js.
- Plik JSON
- Podstawy Node.js.
- System plików
- Wydarzenia
- Moduł HTTP
- Express.js
- Samouczek dotyczący środowiska Node.js Tworzenie aplikacji krok po kroku przy użyciu Express.js
Co to jest Node.js?
Node.js to potężna platforma opracowana na platformie Silnik JavaScript V8 w Chrome która kompiluje JavaScript bezpośrednio do natywnego kodu maszynowego. Jest to lekki framework używany do tworzenia aplikacji internetowych po stronie serwera i rozszerza API JavaScript, aby oferować zwykłe funkcje po stronie serwera. Zwykle jest używany do tworzenia aplikacji na dużą skalę, szczególnie w przypadku witryn strumieniowych wideo, aplikacji jednostronicowych i innych aplikacji internetowych. Node.js robi wykorzystanie nieblokującego modelu we / wy sterowanego zdarzeniami, co czyni go właściwym wyborem dla aplikacji czasu rzeczywistego wymagających dużej ilości danych.
Jak każdy inny język programowania, node.js korzysta z pakietów i modułów. Są to biblioteki, które zawierają różne funkcje i są importowane z npm (menedżera pakietów węzłów) do naszego kodu i wykorzystywane w programach. Poniżej wymieniono niektóre z głównych funkcji, które definiują Node.js:
Funkcje Node.js.
- Otwarte źródło
Node.js to licencja MIT na platformę open source, która jest obsługiwana przez ogromną społeczność. Jego społeczność jest dość aktywna i przyczyniła się do dodania nowych możliwości do aplikacji Node.js. - Prosto i szybko
Ponieważ Node.js jest oparty na silniku JavaScript V8 przeglądarki Google Chrome, jego biblioteki są w stanie szybko wykonywać kod. - Asynchroniczny
Wszystkie biblioteki Node.js są asynchroniczne, co oznacza, że serwery oparte na Node.js nigdy nie czekają, aż API odeśle odpowiedź i przejdzie do następnego API. - Wysoka skalowalność
Ze względu na mechanizm zdarzeń Node.js jest wysoce skalowalny i pomaga serwerowi w nieblokującej odpowiedzi. - Jednowątkowy
Za pomocą pętli zdarzeń Node.js może podążać za modelem jednowątkowym. Dzięki temu pojedynczy program może obsługiwać wiele żądań. - Bez buforowania
Jedną z głównych funkcji aplikacji Node.js jest to, że nigdy nie buforuje żadnych danych. - Wieloplatformowe
Node.js można łatwo zbudować i wdrożyć na różnych platformach, takich jak Windows, MAC i Linux.
Przejdźmy teraz dalej i zobaczmy, jak wdrożyć rzeczywisty kod w przeglądarce. Ale wcześniej musisz pobrać i zainstalować w swoich systemach. Możesz polecić mój drugi artykuł, aby poznać całość Proces instalacji Node.js. .
A teraz przejdźmy dalej w tym samouczku Node.js, w którym opowiem o najważniejszym składniku Node.js, czyli npm.
NPM (Node Package Manager)
NPM to skrót od Node Package Manager, który, jak nazwa sugeruje, jest menedżerem pakietów dla pakietów / modułów Node.js. Od wersji Node 0.6.0. i później, npm został dodany jako domyślny w instalacji węzła. Oszczędza to kłopotów z jawną instalacją npm.
NPM zasadniczo pomaga na dwa sposoby:
java konwertuj double na int
- Udostępnia i obsługuje repozytoria online pakietów / modułów node.js, które można łatwo pobrać i wykorzystać w naszych projektach. Znajdziesz je tutaj: npmjs.com
- Udostępnia narzędzie wiersza poleceń do instalowania różnych pakietów Node.js, zarządzania wersjami Node.js i zależnościami pakietów.
Ale teraz pewnie się zastanawiasz, czym dokładnie są te moduły i jak pomagają nam w budowaniu aplikacji Node.js. Cóż, w następnej sekcji tego samouczka Node.js przedstawię pełny wgląd w moduły Node.js.
Moduły Node.js.
Moduły w Node.js reprezentują różne funkcje, które są zgrupowane w jednym lub wielu plikach JS. Moduły te mają unikalny kontekst, dzięki czemu nigdy nie kolidują ani nie zanieczyszczają zakresu innych modułów.
Moduły te umożliwiają ponowne wykorzystanie kodu i zwiększają łatwość użycia. Node.js zasadniczo udostępnia trzy typy modułów:
- Moduły podstawowe
- Moduły lokalne
- Moduły innych firm
Moduł podstawowy
Ponieważ Node.js jest bardzo lekki Framework, podstawowe moduły obejmują absolutnie minimum funkcjonalności. Te moduły są zwykle ładowane, gdy proces Node rozpoczyna wykonywanie. Wszystko, co musisz zrobić, to zaimportować te podstawowe moduły, aby użyć ich w swoim kodzie.
Poniżej wymieniłem kilka ważnych modułów Core.
Moduł podstawowy | Opis |
http | Zawiera klasy, metody i zdarzenia wymagane do utworzenia serwera HTTP Node.js. |
url | Zawiera metody rozpoznawania i analizowania adresów URL w Node |
querystring | Zawiera metody do obsługi ciągu zapytania Node |
ścieżka | Zawiera metody radzenia sobie ze ścieżkami plików |
FS | Zawiera klasy, metody i zdarzenia do pracy z we / wy pliku |
Przydatny | Zawiera funkcje narzędziowe, które mogą być przydatne dla programistów |
Możesz załadować swój moduł podstawowy, używając poniższego kodu:
var module = require ('nazwa_modułu')
Zobaczmy teraz, czym są „moduły lokalne”.
Moduły lokalne
Lokalne moduły Node.js to moduły niestandardowe, które są tworzone lokalnie przez użytkownika / programistę w aplikacji. Moduły te mogą zawierać różne funkcje zgrupowane w osobnych plikach i folderach, które można łatwo rozpowszechniać w społeczności Node.js za pomocą NPM.
Te moduły są ładowane w podobny sposób jak moduły podstawowe. Pokażę, jak to zrobić na prostym przykładzie.
Utwórz własny / lokalny plik module.js.
var detail = {name: function (name) {console.log ('Name:' + name)}, domain: function (domain) {console.log ('Domain:' + domain)}} module.exports = detail
Dołącz plik modułu do głównego pliku aplikacji.
var myLogModule = require ('./ Local_module.js') myLogModule.name ('Edureka') myLogModule.domain ('Education')
Teraz możesz wykonać te pliki za pomocą poniższego polecenia:
node application.js
Pokażę teraz, czym są moduły zewnętrzne.
Moduły zewnętrzne
Możesz użyć zewnętrznego lub 3r & Dmoduły party tylko poprzez pobranie ich przez NPM. Moduły te są generalnie tworzone przez innych programistów i można ich używać bezpłatnie. Niewiele z najlepszych zewnętrznych modułów to ekspres, reaguj, łyk, mangusta, mokka itp.
Globalne ładowanie modułów stron trzecich:
npm install --g
Dołącz plik modułu do głównego pliku aplikacji:
npm install --save
Plik JSON
Plik plik package.json w Node.js jest sercem całej aplikacji. Zasadniczo jest to plik manifestu zawierający metadane projektu. Dlatego zrozumienie tego pliku i praca z nim staje się bardzo ważna dla pomyślnego rozwoju projektu Node.
Plik package.json zazwyczaj składa się z metadanych aplikacji, które są dalej podzielone na poniższe dwie kategorie:
- Identyfikowanie właściwości metadanych: Zawiera właściwości takie jak nazwa projektu, aktualna wersja modułu, licencja, autor projektu, opis projektu itp.
- Pisanie bezpośrednio do pliku: Możesz bezpośrednio zapisać niezbędne informacje w pliku package.json i dołączyć je do swojego projektu.
Do tej pory zapoznałeś się już z różnymi komponentami aplikacji Node JS. W następnej sekcji tego samouczka Node.js przedstawię kilka podstawowych informacji na temat Node Js, abyśmy mogli zacząć z własnymi rękami.
Podstawy Node.js.
Ponieważ Node.js jest frameworkiem JavaScript, używa składni JavaScript. Jeśli chcesz poznać szczegółowo JavaScript, możesz skorzystać z tego . Na razie podszkolę Cię kilkoma podstawami Node.js, takimi jak:
Typy danych
Jak każdy inny język programowania, Node.js ma różne typy danych, które są dalej kategoryzowane jako pierwotne i nieprymitywne typy danych.
Pierwotne typy danych to:
- Strunowy
- Numer
- Boolean
- Zero
- Nieokreślony
Nieprymitywne typy danych to:
- Obiekt
- Data
- Szyk
Zmienne
Zmienna to jednostki, które przechowują wartości, które mogą się zmieniać w trakcie programu. Aby utworzyć zmienną w Node.js, musisz użyć zastrzeżonego słowa kluczowego var. Nie musisz przypisywać typu danych, ponieważ kompilator automatycznie go wybierze.
Składnia:
var nazwa_zmiennej = wartość
Operatorzy
Node.js obsługuje poniższe operatory:
Typ operatora | Operatorzy |
Arytmetyka | +, -, /, *,%, ++, - |
Zadanie | =, + =, - =, * =, / =,% = |
Warunkowy | =? |
Porównanie | ==, === ,! = ,! ==,>,> =,<, <=, |
Logiczny | &&, || ,! |
Bitowo | &, |, ^, ~,<>, >>> |
Funkcje
Funkcje w Node.js to blok kodu, który ma nazwę i jest napisany w celu wykonania określonego zadania. Aby go utworzyć, musisz użyć funkcji słowa kluczowego. Funkcja jest zwykle procesem dwuetapowym. Pierwsza to zdefiniowanie funkcji, a druga to jej wywołanie. Poniżej znajduje się składnia tworzenia i wywoływania funkcji:
Przykład:
// Definiowanie funkcji display_Name (firstName, lastName) {alert ('Hello' + firstName + '' + lastName)} // Wywołanie funkcji display_Name ('Park', 'Jimin')
Obiekty
Obiekt jest niepierwotnym typem danych, który może zawierać wiele wartości pod względem właściwości i metod. Obiekty Node.js są samodzielnymi jednostkami, ponieważ nie istnieje pojęcie klasy. Możesz stworzyć obiekt na dwa sposoby:
- Używanie literału Object
- Korzystanie z konstruktora obiektu
Przykład:
// obiekt z właściwościami i metodą var worker = {// properties firstName: 'Minho', lastName: 'Choi', wiek: 35, wynagrodzenie: 50000, // metoda getFullName: function () {return this.firstName + '' + this.lastName}}
System plików
Aby uzyskać dostęp do fizycznego systemu plików, Node.js korzysta z rozszerzenia FS moduł, który zasadniczo obsługuje wszystkie asynchroniczne i synchroniczne operacje we / wy na plikach. Ten moduł jest importowany za pomocą poniższego polecenia:
Jobtracker i Tasktracker w Hadoop
var fs = require ('fs')
Niektóre z ogólnych zastosowań modułów systemu plików to:
- Czytaj pliki
- fs.readFile ()
var http = require ('http') var fs = require ('fs') http.createServer (function (req, res) {fs.readFile ('script.txt', function (err, data) {res.writeHead ( 200, {'Content-Type': 'text / html'}) res.write (data) res.end ()})}). Listen (8080)
- Utwórz pliki
- appendFile ()
- otwarty()
- writeFile ()
- Zaktualizuj pliki
- fs.appendFile ()
- fs.writeFile ()
- Usuń pliki
- fs.unlink ()
- Zmień nazwy plików
- fs.rename ()
Tak więc za pomocą tych poleceń możesz wykonać wszystkie wymagane operacje na swoich plikach. Przejdźmy teraz dalej z tym samouczkiem Node.js i zobaczmy, czym są zdarzenia i jak są obsługiwane w Node.js.
Wydarzenia
Jak już wspomniałem, aplikacje Node.js są jednowątkowe i sterowane zdarzeniami. Node.js obsługuje współbieżność, ponieważ jest sterowany zdarzeniami, a zatem wykorzystuje pojęcia takie jak zdarzenia i wywołania zwrotne. Funkcja async wywołuje pomoc Node.js w utrzymywaniu współbieżności w całej aplikacji.
Zasadniczo w aplikacji Node.js istnieje główna pętla, która czeka i nasłuchuje zdarzeń, a po zakończeniu dowolnego zdarzenia natychmiast inicjuje funkcję wywołania zwrotnego.
Poniższy diagram przedstawia sposób sterowania zdarzeniami w Node.js.
Jedną rzeczą, na którą musisz tutaj zwrócić uwagę, jest to, że chociaż zdarzenia wyglądają podobnie do funkcji wywołania zwrotnego, różnica polega na ich funkcjach. Gdy funkcja asynchroniczna zwraca jej wyniki, wywoływane są wywołania zwrotne, z drugiej strony obsługa zdarzeń całkowicie działa na wzorcu obserwatora. W Node.js metody nasłuchujące zdarzeń nazywane są obserwatorami. W momencie wyzwolenia zdarzenia funkcja detektora automatycznie zaczyna działać. Moduły zdarzeń i klasa EventEmitter zapewniają wiele wbudowanych zdarzeń, które są używane do wiązania zdarzeń z detektorami zdarzeń. Poniżej zapisałem składnię tego.
Powiązanie zdarzenia z detektorem zdarzenia
// Importuj moduł zdarzeń var my_Events = require ('events') // Utwórz obiekt eventEmitter var my_EveEmitter = new my_Events.EventEmitter ()
Powiązanie programu obsługi zdarzenia ze zdarzeniem
// Binding event and event handler my_EveEmitter.on ('eventName', eventHandler)
Odpalanie wydarzenia
// Uruchom zdarzenie my_EveEmitter.emit ('eventName')
Teraz spróbujmy zaimplementować rzeczy, które omówiłem w tej sekcji dotyczącej zdarzeń Node.js.Poniższy kod przedstawia prostą reprezentację wykonania zdarzenia w Node.js.
emiter var = require ('events'). EventEmitter function iterateProcessor (num) {var emt = new emitter () setTimeout (function () {for (var i = 1 i & lt = num i ++) {emt.emit ('BeforeProcess' , i) console.log ('Processing Iteration:' + i) emt.emit ('AfterProcess', i)}}, 5000) return emt} var it = iterateProcessor (5) it.on ('BeforeProcess', function ( info) {console.log ('Rozpoczynanie procesu dla' + info)}) it.on ('AfterProcess', function (info) {console.log ('Kończenie przetwarzania' + info)
W następnej sekcji tego samouczka Node.js przedstawię wgląd w jeden z najważniejszych modułów Node.js, zwany modułem HTTP.
Moduł HTTP
Ogólnie rzecz biorąc, Node.js jest używany do tworzenia aplikacji serwerowych. Ale korzystając z modułu, możesz łatwo tworzyć serwery internetowe, które mogą odpowiadać na żądania klientów. W związku z tym jest również określany jako moduł sieciowy i udostępnia moduły takie jak HTTP i request, które ułatwiają Node.js przetwarzanie żądań serwera.
Możesz łatwo dołączyć ten moduł do swojej aplikacji Node.js, po prostu pisząc poniższy kod:
var http = require ('http')
Poniżej napisałem kod, który pokazuje, jak powstaje serwer WWW w Node.js.
// wywołanie biblioteki http var http = require ('http') var url = require ('url') // tworzenie serwera var server = http.createServer (function (req, res) {// setting content header res.writeHead ( 200, ('Content-Type', 'text / html')) var q = url.parse (req.url, true) .query var txt = q.year + '' + q.month // wyślij ciąg do odpowiedzi res.end (txt)}) // przypisywanie 8082 jako portu nasłuchiwania serwera server.listen (8082)
W następnej sekcji tego samouczka Node.js będę mówić o Express.js, który jest intensywnie używany do tworzenia aplikacji internetowych po stronie serwera.
Express.js
Express.js to framework zbudowany na bazie Node.js, który ułatwia zarządzanie przepływem danych między serwerem a trasami w aplikacjach po stronie serwera. Jest to lekka i elastyczna platforma, która zapewnia szeroki zakres funkcji wymaganych do tworzenia aplikacji internetowych i mobilnych.
Express.js jest rozwijany w module oprogramowania pośredniego Node.js o nazwie połączyć . Moduł connect dodatkowo wykorzystuje http moduł do komunikacji z Node.js. Tak więc, jeśli pracujesz z którymkolwiek z modułów oprogramowania pośredniego opartych na connect, możesz łatwo zintegrować się z Express.js.
statyczna funkcja składowa w języku C ++
Nie tylko to, kilka z głównych zalet Express.js to:
- Przyspiesza tworzenie aplikacji internetowych
- Pomaga w tworzeniu aplikacji mobilnych i internetowych typu jednostronicowego, wielostronicowego i hybrydowego
- Express zapewnia dwa silniki szablonów, a mianowicie Jade i EJS
- Express jest zgodny z architekturą Model-View-Controller (MVC)
- Integracja z bazami danych, takimi jak MongoDB, Redis, MySQL
- Definiuje oprogramowanie pośredniczące do obsługi błędów
- Upraszcza konfigurację i dostosowywanie łatwe dla aplikacji.
Dzięki tym wszystkim funkcjom Express przejmuje odpowiedzialność za część zaplecza w stosie MEAN. Mean Stack to pakiet oprogramowania JavaScript typu open source, który służy do tworzenia dynamicznych witryn i aplikacji internetowych. Tutaj, OZNACZAĆ oznacza M ongoDB, JEST xpress.js, DO ngularJS i N ode.js.
Zobaczmy teraz prosty przykład, aby zrozumieć, jak Express.js współpracuje z Node.js, aby ułatwić nam pracę. Ale zanim zaczniesz pracować z Express.js, musisz zainstalować go w swoim systemie.
Aby zainstalować Express.js globalnie, możesz użyć poniższego polecenia:
npm install -g express
Lub, jeśli chcesz zainstalować go lokalnie w folderze projektu, musisz wykonać poniższe polecenie:
npm install express --save
Ponieważ skończyliśmy ze wszystkimi przygotowaniami, przejdźmy teraz bezpośrednio do praktycznej implementacji. Tutaj pokażę prostą aplikację uwierzytelniania użytkownika za pomocą Node.js i Express.js.
Samouczek dotyczący środowiska Node.js Tworzenie aplikacji krok po kroku przy użyciu Express.js
W tym celu będziemy potrzebować poniższych plików:
- package.json
- script.js
- wyświetlenia
- index.jade
- login.jade
- secure.jade
- unauthorized.jade
- Welcome.jade
- lib
- route.js
Więc zacznijmy od package.json .
{'author': 'Edureka', 'name': 'Express_Demo', 'description': 'Express with Node.js', 'version': '0.0.0', 'scripts': {'start': 'node script.js '},' silniki ': {' node ':' ~ 0.4.12 '},' zależności ': {' connect-flash ':' ^ 0.1.1 ',' cookie-parser ':' ^ 1.4 .3 ',' express ':' ^ 3.21.2 ',' jade ':' ^ 0.20.3 ',' req-flash ':' 0.0.3 '},' devDependencies ': {}}
Następnie musisz utworzyć plik script.js .
var express = require ('express') var http = require ('http') var port = 8999 var app = express () const flash = require ('connect-flash') var cookieParser = require ('cookie-parser') var server = http.createServer (app) function checkAuth (req, res, next) {console.log ('checkAuth' + req.url) // nie obsługuj / zabezpieczaj niezalogowanych użytkowników if (req.url = == '/ secure' && (! req.session ||! req.session.authenticated)) {res.render ('nieautoryzowane', {status: 403}) return} next ()} app.use (flash () ) app.use (cookieParser ()) app.use (express.session ({secret: 'example'})) app.use (express.bodyParser ()) app.use (checkAuth) app.use (app.router) app.set ('view engine', 'jade') app.set ('view options', {layout: false}) require ('./ lib / tours.js') (app) app.listen (port) console .log ('Węzeł nasłuchujący na porcie% s', port)
Teraz utwórz folder o nazwie view, w którym będziesz dodawać pliki jade, które będą odpowiedzialne za różne odsłony strony. Pierwszy plik widoku, który musisz utworzyć, to index.jade .
!!! 5 html (lang = 'en') head title Uwierzytelnianie użytkownika Przykład body h1 center Demo uwierzytelniania za pomocą Express h3 Przejdź do h4 ul li: a (href = '/ secure') Secure content li: a (href = '/ welcome') Strona powitalna li: a (href = '/ logout') Wyloguj się
Teraz utwórz plik login.jade plik.
!!! 5 html (lang = 'en') head title Przykład uwierzytelniania ekspresowego body h1 center Zaloguj się do tego przykładowego centrum uwierzytelniania ekspresowego p Użyj użytkownik dla nazwy użytkownika i przechodzić dla hasła. form (metoda = 'post') p etykieta (for = 'username') Wprowadzanie adresu e-mail (type = 'text', name = 'username', class = 'form-control', id = 'exampleInputPassword1', placeholder = ' Email ', style =' width: 400px ') p center label (for =' password ') Password input (type =' password ', name =' password ', class =' form-control ', id =' exampleInputPassword1 ', placeholder = 'Password', style = 'width: 400px') p center Prześlij - każda wiadomość flash h4 (style = 'color: red') # {wiadomość}
Następnym krokiem jest utworzenie pliku Welcome.jade .
!!! 5 html (lang = 'en') head title Przykład uwierzytelniania użytkownika body h1 center Witamy w samouczku Edureka!
Następnie utwórz plik secure.jade plik.
!!! 5 html (lang = 'en') head title Ekspresowe uwierzytelnianie Przykład body h1 center Cześć, bezpieczny użytkownik. p Przejdź do ul li: a (href = '/ secure') Bezpieczna zawartość li: a (href = '/ welcome') Strona powitalna li: a (href = '/ logout') Wyloguj
Teraz utwórz plik unauthorized.jade plik.
!!! 5 html (lang = 'en') head title Uwierzytelnianie użytkownika Przykład body h1 center Brak autoryzacji p Nie masz uprawnień do przeglądania tej strony. p Proszę ' kontynuować
Teraz musisz utworzyć folder i nazwać go lib . Teraz utwórz plik route.js plik, który zmapuje wszystkie strony.
var util = require ('util') module.exports = function (app) {app.get ('/', function (req, res, next) {res.render ('index')}) app.get (' / welcome ', function (req, res, next) {res.render (' welcome ')}) app.get (' / secure ', function (req, res, next) {res.render (' secure ')} ) app.get ('/ login', function (req, res, next) {res.render ('login', {flash: req.flash ()})}) app.post ('/ login', function ( req, res, next) {// możesz chcieć przeszukać bazę danych lub coś bardziej skalowalnego tutaj, jeśli (req.body.username && req.body.username === 'user' && req.body.password && req.body.password === 'pass') {req.session.authenticated = true res.redirect ('/ secure')} else {req.flash ('błąd', 'Nazwa użytkownika i hasło są nieprawidłowe') res. redirect ('/ login')}}) app.get ('/ logout', function (req, res, next) {delete req.session.authenticated res.redirect ('/')})}
Teraz, jeśli chcesz wykonać ten kod samodzielnie, możesz pobrać go stąd: Samouczek Node.js w formacie PDF .
W ten sposób dochodzimy do końca tego samouczka Node.js. Mam nadzieję, że udało mi się wyjaśnić koncepcje Node.js od podstaw.
Jeśli znalazłeś ten „Node.js Tutorial ' istotnych, Sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie.
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy tego samouczka Node.js, a my skontaktujemy się z Tobą.