Turinys
Node.js yra alternatyva, supaprastinanti žiniatinklio kūrimą, anksčiau reikėjo išmokti keletą kalbų, kad būtų galima pateikti serverio apdorojimo dalį Priekinis galas ir tada praleisti daugybę valandų kurdami serverius.Tik su viena kalba, kokia ji yra „JavaScript“ ir variklio dėka V8 sukurta „Google“, turime prieigą taikyti tą pačią kalbą serveris, Užpakalinė dalis Y Priekinis galas, todėl mes praleidžiame mažiau laiko mokydamiesi įvairių sintaksės formų ir taip susitelkiame ties tuo, kas mums iš tikrųjų svarbu, tai yra įgyvendinti mūsų idėjas.
ReikalavimaiNorėdami atlikti šioje pamokoje siūlomus pratimus ir pavyzdžius, turime įdiegti naujausią versiją Node.js. Tai labai lengva gauti, šiuo atveju mes naudosime diegimo programą „Windows“ kurį gauname tiesiai iš oficialios „Node.js“ svetainės, ji veikia kaip bet kuris diegimo programa ir tada sukuria tiesioginę prieigą prie konsolės Node.js kur galime vykdyti reikiamus scenarijus.
Node.js Tai leidžia mums sukurti labai efektyvius žiniatinklio serverius, nereikalaujant didelių konfigūracijų, be to, tos pačios kalbos taikymas leidžia išvengti kodo atskyrimo tarp programos ir paslaugos. Norėdami sukurti pirmąjį serverį, turime atlikti šiuos veiksmus:
1- Pirmiausia atidarome konsolę Node.js ir mes dedame save į aplanką, kuriame galime jį vykdyti, tame aplanke sukursime failą pavadinimu server.jsŠis vardas nebūtinas, tačiau gera praktika vadinti failą, kurį žiniatinklio serveris sukurs tokiu būdu.
2- Kai turėsime failą, įdiegsime per npm paraiška prižiūrėtojas, tai bus patikrinta kiekvieną kartą, kai pasikeis nurodytas failas, turite nedelsdami iš naujo paleisti serverį, tam tiesiog reikia konsolėje įdėti šią komandą:
npm install -g supervizoriusŠis diegimas turėtų atrodyti taip, kai jį paleidžiame savo konsolėje:
3- Kai jau įdiegėme prižiūrėtojas tegul tai išklauso mūsų failo pakeitimus server.js, tam po įdiegimo turime įvesti šią komandą:
prižiūrėtojas serveris.jsKadangi vis dar neturime jokio galiojančio kodo, konsolėje neturėsime jokių rezultatų ir pamatysime tai reiškiančių pranešimų seriją, kaip matome šiame paveikslėlyje:
4- Dabar, kai turime savo bazę, turime sukurti savo žiniatinklio serverio kodą, kuris bus palaikomas bibliotekoje http apie Node.js ir su šiuo metodu galime sukurti funkcionalų serverį createServer (), tai tiesiog turi grąžinti nedidelį turinį, kad neprarastume įpročio, kurį ketiname sukurti "Labas pasauli!", pažiūrėkime kodą, kurį įtrauksime į savo failą server.js:
var http = reikalauti ('http'); http.createServer (funkcija (užklausa, atsakymas) {response.writeHead (200, {'Content-Type': 'text / html'}); response.end ('');}). klausytis (8082);Kaip matome tiesiog su a reikalauti importuojame http biblioteka, tada su metodu createServer mes sugeneruojame žiniatinklio serverį ir su objektu atsakymas Mes sukuriame atsakymo antraštę ir pranešimą, baigdami nurodome savo serveriui, kad jis turi priimti gaunamus ryšius per prievadą 8082, kur vykdant mūsų pavyzdį mūsų vietinis šeimininkas nurodytame uoste jis atrodys taip:
5- Jei pakeisime failą server.js, dėka prižiūrėtojas paslauga juos paims be reikalo iš naujo paleisti rankiniu būdu Node.js, todėl tik atnaujinę naršyklę mūsų pakeitimai bus atspindėti be didelių pastangų.
Kaip minėjome pradžioje, Node.js Tai leidžia mums aptarnauti statinį turinį tiesiogiai iš savo serverio programos. Tai rodoma kaip privalumas, kai norime kurti programas su monolitine šerdimi, tai yra, be suskaidymo ar įtrūkimų dėl skirtingų technologijų naudojimo.
Norėdami atlikti šią pamoką, mes sukursime failų seriją aplanke, pavadintame turiniu, kuriami failai bus šie:
index.htmlTai bus pradinis failas ir pagal numatytuosius nustatymus jame bus pagrindinė struktūra HTML.
stilius.cssTai yra mūsų failas su stiliaus lapais, mes ketiname su šiuo failu pakeisti mūsų programos išvaizdą.
script.jsČia galime pamatyti, kaip galime naudoti įprastus scenarijus „JavaScript“ nepaisydami mūsų programos Node.js.
Dabar, kai apibrėžėme savo failus, pažiūrėkime kiekvieno failo turinį index.html įtrauksime šiuos dalykus:
Mūsų pirmasis „Node.js“ serveris „Sveiki pasaulis“Kaip matome, tai paprastas puslapis su pagrindine struktūra, kur mes vadiname išorinius failus stilius.css Y script.js, o į kūną įdėjome paprastą pranešimą. Tada mūsų faile stilius.css tai padės mums pakeisti mūsų puslapio išvaizdą, turime įdėti šias kodo eilutes:
#hello {font-size: 5em; fonas: pilka; spalva: žalia; paminkštinimas: 0.5em}Galiausiai faile script.js Mes įdėsime kodą, kuris parodys pranešimą, kai puslapis bus visiškai įkeltas, šis kodas yra toks:
window.onload = function () {alert ('Eureka veikia!'); };Kad turėtume viską vienoje vietoje ir palaikytume tvarką mūsų kūrime, šiuos failus priglausime aplanke pavadinimu turinį.
Ko mums trūksta?Kai tai bus padaryta, mums tereikia sukurti serverį, pirmiausia turime įtraukti tinkamas bibliotekas, šiuo atveju mums reikės tos, kurią jau žinome. http, be to, mums reikės kelias kuri yra tiesti maršrutus ir galiausiai fs kuris skirtas failų tarnybai.
Mes einame į savo archyvą server.js kuris turi būti mūsų projekto pagrindas ir dabar yra mūsų bloke createServer () nurodysime, kad URL srovė kaip bazė ir su objektu fs Mes patvirtinsime, ar failai yra, jei jų nėra, mes išmesime a 404 klaida failas nerastas. Pažiūrėkime aukščiau aprašytos funkcijos kodą:
var http = reikalauti ('http'); var kelias = reikalauti ('kelias'); var fs = reikalauti ('fs'); http.createServer (funkcija (užklausa, atsakymas) {var search_file = path.basename (decodeURI (request.url)) || 'index.html'; var f = 'content /' + search_file; fs.exists (f, function (egzistuoja) {console.log (egzistuoja? paieškos_failas + "jei yra": paieškos_failas + "neegzistuoja");});}). klausytis (8082);Turime problemą, kad tai vis tiek nepadeda mums aptarnauti failų, todėl turime naudoti metodą fs kuris leidžia mums skaityti failus ir tai galime siųsti į naršyklę, kaip matome šiame kode:
var http = reikalauti ('http'); var kelias = reikalauti ('kelias'); var fs = reikalauti ('fs'); http.createServer (funkcija (užklausa, atsakymas) {var search_file = path.basename (decodeURI (request.url)) || 'index.html'; var f = 'content /' + search_file; var mimeTypes = {'.js ':' text / javascript ',' .html ':' text / html ',' .css ':' text / css '}; fs.exists (f, funkcija (egzistuoja) {jei (egzistuoja) {fs.readFile (f, funkcija (klaida, duomenys) {if (err) {response.writeHead (500); response.end ('Serverio klaida'); return;} var antraštės = {'Content-type': mimeTypes [kelias .pavadinimas (search_file)]}}; response.writeHead (200, antraštės); response.end (duomenys);}); return;} response.writeHead (404); response.end ();});}). Listen (8082) );Kaip matome dabar su metodu readFile () pirmiausia galime patikrinti, ar jūsų serveryje nėra klaidų perskambink ir antra, mes galime gauti failo tipą, kurį norime pateikti, iš tipų sąrašo, todėl galime sukurti antraštę HTTP būtina, kad naršyklė neturėtų interpretuoti duomenų savaip.
Jei nė vienas iš veiksmų negrąžina rezultato, turime nusiųsti naršyklei atsakymą 404, tokiu būdu sulaužysime užklausą ir nurodysime vartotojui, kad tai, ko jie ieško, nėra nurodytame kelyje. Kaip mes padarėme ankstesniame pavyzdyje, mes pasakysime Node.js kad uostas, kuriame ji turėtų priimti prašymus, turi būti 8082, kuris paprastai yra nemokamas uostas ir todėl neturi konfliktų su kitomis paslaugomis. Galiausiai parašome failo atsakymą ir vykdome savo prižiūrėtojas dar kartą, jei sustabdėme paslaugą, kaip matome šiame paveikslėlyje:
Kai tai bus padaryta, mes einame į savo naršyklę ir vykdome prievadą 8082 ir matome savo programos išvestį, kuri turėtų atrodyti taip:
DIDELIS
Tai parodo mums visą galią ir universalumą Node.js, su kuriomis galėjome patikrinti, ar nereikia vartoti kitos kalbos nei „JavaScript“ vystymuisi.SvarbuSvarbu atlikti tam tikrus tyrimus npm kas jis mazgų paketų tvarkyklė, nes naudodami šį įrankį galime gauti daug paketų, kurie gali mums tarnauti, tarp jų yra keletas rėmus tai leis mums supaprastinti visą čia matytą kodą, be kitų bendruomenės sukurtų komponentų, kad sutaupytume kūrėjo darbo Node.js.
Baigę vadovėlį, sukūrėme serverį ir taip pat išmokome aptarnauti statinius failus. Jei būtume panaudoję tokią tradicinę technologiją kaip PHP Norint pasiekti šį rezultatą, mums pirmiausia reikia tokio tradicinio serverio kaip Apache arba nginx, kur mes taip pat turime juos sukonfigūruoti, kodo spausdinimui būtų reikėję kitos kalbos „JavaScript“ tik kliento pusėje ir taip švaistomas jo puikios galimybės.Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką