Mazgas.JS (Node.JS)

„Node.js“ yra atviro kodo „cross-platform JavaScript“ vykdymo laikas, vykdoma serveriuose. Nuo jos išleidimo 2009 m. Ši platforma tapo itin populiari ir šiomis dienomis vaidina labai svarbų vaidmenį žiniatinklio kūrimo srityje.
Visą straipsnį rasite Node.JS ...

Rodyti filtrą
Filtrų talpinimas
A2 Themes & Host Me Filter

Operacinė sistema

Disko talpa

RAM atmintis

Disko tipas

CPU šerdys

Rūšiuoti

Balas – 0
RedSwitches Logo
RedSwitches

Raudoni jungikliai

Pearl
$6.94 /Kas mėnesį


Serverio vietos


RedSwitches Servers in NetherlandsNyderlandai RedSwitches Servers in UnionJungtinės Valstijos RedSwitches Servers in MelbourneAustralija RedSwitches Servers in MumbaiIndija RedSwitches Servers in GermanyVokietija
Palyginkite
Balas – 0
Hostarina Logo
Hostarina

Hostarina

Personal
$2.92 /Kas mėnesį


Serverio vietos


Hostarina Servers in UnionJungtinės Valstijos Hostarina Servers in RawalpindiPakistanas Hostarina Servers in MunichVokietija
Palyginkite
Balas – 0
Net9 Oy Logo
Net9 Oy

„Net9 Oy“

Small
$1.13 /Kas mėnesį


Serverio vietos


Net9 Oy Servers in StockholmŠvedija Net9 Oy Servers in HelsinkiSuomija Net9 Oy Servers in ParisPrancūzija
Palyginkite
Balas – 0
Heroku Logo
Heroku

Herokas

Hobby
$7 /Kas mėnesį


Serverio vietos


Heroku Servers in United StatesJungtinės Valstijos
Palyginkite
Balas – 0
Awareindia.net Logo
Awareindia.net

Awareindia.net

Linux Hosting Plan G
$5.83 /Kas mėnesį

Palyginkite
Balas – 0
Chemi Cloud Logo
Chemi Cloud

Chemi Debesis

Ionic
$2.95 /Kas mėnesį


Serverio vietos


Chemi Cloud Servers in BangaloreIndija Chemi Cloud Servers in New YorkJungtinės Valstijos Chemi Cloud Servers in BucharestRumunija Chemi Cloud Servers in LondonJungtinė Karalystė Chemi Cloud Servers in AmsterdamNyderlandai Chemi Cloud Servers in TorontoKanada Chemi Cloud Servers in SydneyAustralija
Palyginkite
Balas – 0
Oudel Logo
Oudel

Oudelis

cPanel Hosting 1
$5.95 /Kas mėnesį


Serverio vietos


Oudel Servers in UnionJungtinės Valstijos
Palyginkite

 

Node.js

 

 

„Node.js“ yra atviro kodo „cross-platform JavaScript“ vykdymo laikas, vykdoma serveriuose. Nuo jos išleidimo 2009 m. Ši platforma tapo itin populiari ir šiomis dienomis vaidina labai svarbų vaidmenį žiniatinklio kūrimo srityje. Jei įvertinsime populiarumo rodikliu žvaigždžių skaičių, kurį projektas surinko „GitHub“, tai „Node.js“, turintis daugiau nei 50 000 žvaigždžių, yra labai labai populiarus projektas.

 

„Node.js“ platforma sukurta naudojant „Google“ V8 „JavaScript“ variklį, kuris naudojamas „Google Chrome“ naršyklėje. Ši platforma daugiausia naudojama kuriant žiniatinklio serverius, tačiau jos taikymo sritis tuo neapsiriboja.

 

Pažvelkime į pagrindines „Node.js“ savybes.

 

Greitis

 

Viena pagrindinių „Node.js“ atrakcijų yra greitis. „Node.js“ vykdomas „JavaScript“ kodas gali būti dvigubai greitesnis už kodą, parašytą sukompiliuotomis kalbomis, pvz., C ar Java, ir dydžiu greitesnis už aiškinamas kalbas, tokias kaip Python ar Ruby. To priežastis yra neužblokuojanti platformos architektūra, o konkretūs rezultatai priklauso nuo naudojamų etalonų, tačiau apskritai „Node.js“ yra labai greita platforma.

 

Paprastumas

 

„Node.js“ platformą lengva išmokti ir naudoti. Tiesą sakant, tai yra labai paprasta, ypač palyginti su kai kuriomis kitomis serverių platformomis.

 

„JavaScript“

 

„JavaScript“ vykdoma „Node.js“ aplinkoje. Tai reiškia, kad milijonai „front-end“ kūrėjų, kurie naršyklėje jau naudoja „JavaScript“, gali parašyti tiek serverio, tiek kliento kodą ta pačia programavimo kalba, nemokėdami visiškai naujo įrankio pereiti prie serverio pusės kūrimo.

 

Naršyklėje ir serveryje vartojamos tos pačios kalbos sąvokos. Be to, „Node.js“ gali greitai pereiti prie naujų „ECMAScript“ standartų, nes jie įgyvendinami platformoje.

 

Nereikia laukti, kol vartotojai atnaujins savo naršykles, nes „Node.js“ yra serverio aplinka, visiškai valdanti kūrėją. Todėl naujos kalbos funkcijos tampa prieinamos, kai įdiegiate palaikomą „Node.js“ versiją.

 

V8 variklis

 

„Node.js“ centre, be kitų sprendimų, yra „Google“ atvirojo kodo V8 „JavaScript“ variklis, naudojamas „Google Chrome“ ir kitose naršyklėse. Tai reiškia, kad „Node.js“ naudojasi tūkstančiais inžinierių, kurie neįtikėtinai greitai sukūrė „JavaScript Chrome“ vykdymo laiką ir toliau stengiasi tobulinti V8.

 

Asinchronija

 

Tradicinėmis programavimo kalbomis (C, Java, Python, PHP) visos instrukcijos pagal numatytuosius nustatymus blokuojamos, nebent kūrėjas aiškiai rūpinasi kodo asinchroniniu vykdymu. Dėl to, jei, pavyzdžiui, tokioje aplinkoje, pateikiate tinklo užklausą atsisiųsti tam tikrą JSON kodą, srauto, iš kurio pateikiama užklausa, vykdymas bus sustabdytas, kol bus gautas ir apdorotas atsakymas.

 

„JavaScript“ leidžia žymiai lengviau rašyti asinchroninį ir neužblokuojantį kodą, naudojant vieną giją, atgalinius skambučius ir į įvykius orientuotą požiūrį į kūrimą. Kiekvieną kartą, kai mums reikia atlikti sunkią operaciją, mes perduodame atgalinį skambutį atitinkamam mechanizmui, kuris bus iškviestas iškart po šios operacijos pabaigos. Dėl to nereikia laukti tokių operacijų rezultatų, kad programa galėtų tęsti darbą.

 

Panašus mechanizmas atsirado ir naršyklėse. Mes negalime sau leisti laukti, tarkime,AJAXprašymas baigti negalėdamas reaguoti į vartotojo veiksmus, pvz., mygtuko paspaudimus. Kad vartotojams būtų patogu dirbti su tinklalapiais, viskas, tiek duomenų atsisiuntimas iš tinklo, tiek mygtukų paspaudimų apdorojimas, turi vykti vienu metu, realiuoju laiku.

 

Jei kada nors sukūrėte mygtuko paspaudimo įvykių tvarkytuvą, jau naudojote asinchroninius programavimo metodus.

 

Asinchroniniai mechanizmai leidžia vienam „Node.js“ serveriui vienu metu tvarkyti tūkstančius ryšių, neapkraunant programuotojo gijų valdymu ir lygiagrečiomis kodo vykdymo užduotimis. Tokie dalykai dažnai yra klaidų šaltiniai.

 

„Node.js“ pateikia kūrėjui neužblokuojančius pagrindinius įvesties / išvesties mechanizmus, o „Node.js“ sistemoje naudojamos bibliotekos yra parašytos naudojant neužblokuojančias paradigmas.Dėl to elgesio blokavimas tampa išimtimi, o ne norma.

 

Kai „Node.js“ turi atlikti įvesties / išvesties operaciją, pvz., Įkelti duomenis iš tinklo, pasiekti duomenų bazę ar failų sistemą, užuot blokavęs pagrindinę giją, laukdamas tokios operacijos rezultatų, „Node.js“ inicijuos savo vykdymą ir tęsti kitus veiksmus, kol bus gauti šios operacijos rezultatai.

 

Bibliotekos

 

Lengvai ir patogiai dirbant su „Node.js“ paketų tvarkytuvu, vadinamu „npm“, „Node.js“ ekosistema klesti. Dabar npm registre yra daugiau nei pusė milijono atvirojo kodo paketų, kuriuos bet kuris „Node.js“ kūrėjas gali laisvai naudoti.

 

Peržiūrėję keletą pagrindinių „Node.js“ platformos funkcijų, pabandykime tai atlikti. Pradėkime nuo diegimo.

 

 

Node.js

 

 

Diegiamas „Node.js“

 

„Node.js“ galima įdiegti įvairiais būdais, kuriuos apimsime akimirksniu. Taigi galima rasti oficialius visų pagrindinių platformų diegimo paketus.

 

Yra dar vienas labai patogus būdas įdiegti „Node.js“, tai yra naudoti operacinėje sistemoje pateiktą paketų tvarkyklę. Pavyzdžiui, „macOS“ paketų tvarkyklė, kuri de facto yra šios srities standartas, vadinamas „Homebrew“.

 

Jei turite tokią savo sistemoje, galite įdiegti „Node.js“, komandinėje eilutėje vykdydami šią komandą:

 

virimo diegimo mazgas

 

Kitų operacinių sistemų, įskaitant „Linux“ ir „Windows“, paketų tvarkyklių sąrašą galite rasti čia.

 

Populiarus „Node.js“ versijų tvarkyklė yra „nvm“. Šis įrankis leidžia patogiai persijungti tarp skirtingų „Node.js“ versijų, su jo pagalba galite, pavyzdžiui, įdiegti ir išbandyti naują „Node.js“ versiją ir, jei reikia, grįžti prie senosios. Nvm taip pat naudinga situacijoje, kai reikia išbandyti tam tikrą kodą senoje „Node.js“ versijoje.

 

Pradedantiesiems naudoti oficialius „Node.js“ diegimo įrankius. „MacOS“ vartotojams rekomenduojama įdiegti „Node.js“ naudojant „Homebrew“. Dabar, kai įdiegėte „Node.js“, atėjo laikas parašyti „Labas pasaulis“.

 

Pirmoji „Node.js“ programa

 

Dažniausias pirmosios „Node.js“ programos pavyzdys yra paprastas interneto serveris. Štai jo kodas:

const http = reikalauti ('http')

const hostname = '127.0.0.1'

const prievadas = 3000

const serveris = http.createServer ((req, res) = & gt; {

res.statusCode = 200

res.setHeader („Content-Type“, „text / plain“)

res.end („Sveikas pasaulis \ n“)

})

server.listen (prievadas, pagrindinio kompiuterio vardas, () = & gt; {

console.log („Serveris veikia adresu: http: // $ {hostname}: $ {port} /`)

})

 

Norėdami paleisti šį kodą, išsaugokite jį faile server.js ir terminale paleiskite šią komandą:

 

mazgas server.js

 

Norėdami patikrinti serverį, atidarykite naršyklę ir adreso juostoje įveskite http://127.0.0.1:3000, tai yra serverio adresą, kuris bus rodomas konsolėje po sėkmingo jos paleidimo. Jei viskas veiks taip, kaip turėtų, puslapyje bus rodoma „Sveikas pasaulis“.

 

Pažvelkime į šį pavyzdį.

 

Pirmiausia atkreipkite dėmesį, kad kode yra komanda prijungti HTTP modulį.

 

„Node.js“ platformoje yra puikus standartinis modulių rinkinys, kuris apima gerai išvystytus mechanizmus darbui su tinklu.

Objekto metodas „createServer ()“ sukuria naują HTTP serverį ir jį grąžina.

 

Serveris sukonfigūruotas klausytis konkretaus pagrindinio kompiuterio prievado. Kai serveris parengtas, iškviečiamas atitinkamas atgalinis skambutis, informuojantis mus, kad serveris veikia.

Kai serveris gauna užklausą, įvykio įvykio užklausa pateikia du objektus. Pirmasis yra užklausa (req, objektas http.IncomingMessage), antrasis - atsakymas (res, objektas http.ServerResponse). Jie yra svarbiausi HTTP užklausų tvarkymo mechanizmai.

 

Pirmasis pateikia mums informaciją apie užklausą. Paprastame pavyzdyje mes nenaudojame šių duomenų, tačiau, jei reikia, naudodamiesi objektu, reqyou galite pasiekti užklausos antraštes ir joje perduotus duomenis.

 

Antrasis reikalingas norint suformuoti ir išsiųsti atsakymą į užklausą.

 

Tokiu atveju atsakymą į užklausą formuojame taip. Pirma, mes nustatėme nuosavybės būsenos kodą į 200 vertę, kuri rodo sėkmingą operaciją:

 

res.statusCode = 200

Tada nustatėme pavadinimą „Content-Type“:

res.setHeader („Content-Type“, „text / plain“)

Tada užbaigiame atsakymo parengimą, pridėdami jo turinį kaip argumentą prie metodo end ():

res.end („Sveikas pasaulis \ n“)

 

Jau minėjome, kad aplink „Node.js“ platformą susiformavo galinga ekosistema. Aptarkime keletą populiarių „Node.js“ sistemų ir pagalbinių įrankių.

 

„Node.js“ karkasai ir pagalbiniai įrankiai

 

„Node.js“ yra žemo lygio platforma. Siekiant supaprastinti jo kūrimą ir palengvinti gyvenimą programuotojams, sukurta daugybė bibliotekų. Kai kurie iš jų laikui bėgant tapo labai populiarūs. Čia yra nedidelis sąrašas bibliotekų, kurios, mano manymu, yra gerai padarytos ir kurias verta ištirti:

 

Išreikšti: Ši biblioteka suteikia kūrėjui itin paprastą, bet galingą įrankį, skirtą interneto serveriams kurti. „Express“ sėkmės raktas buvo minimalistinis požiūris ir dėmesys pagrindiniams serverio mechanizmams, nebandant primesti „vieno langelio“ serverio architektūros vizijos.

 

Meteoras: Tai galinga „full-stack“ sistema, kuri remiasi izomorfiniu požiūriu kurdama „JavaScript“ programas ir naudodama kodą kliente ir serveryje. Kadaise „Meteor“ buvo atskiras įrankis, apimantis viską, ko gali prireikti kūrėjui. Dabar jis taip pat integruojamas su tokiomis frontend bibliotekomis kaip „React“, „Vue“ ir „Angular“. „Meteor“, be bendrų interneto programų kūrimo, taip pat gali būti naudojama kuriant mobiliuosius įrenginius.

 

Koa: Šią internetinę sistemą sukūrė ta pati „Express“ komanda. Remiantis ilgamete „Express“ patirtimi, jis buvo sukurtas daugiausia dėmesio skiriant paprastumui ir kompaktiškumui. Šis projektas atsirado kaip išspręsti didelių „Express“ pakeitimų, nesuderinamų su kitais pagrindų mechanizmais, galinčiais suskaldyti bendruomenę, problema.

 

Kitas.js: Ši sistema skirta organizuoti „React“ programų atvaizdavimą serverio pusėje.

 

Mikro: Tai labai lengva biblioteka, skirta kurti asinchronines HTTP mikroserves.

Socket.io. Tai biblioteka, skirta kurti realaus laiko tinklo programas.

 

Tiesą sakant, „Node.js“ ekosistemoje galite rasti pagalbinę biblioteką beveik bet kuriai užduočiai atlikti. Kaip galite įsivaizduoti, tokios ekosistemos sukūrimas užima daug laiko. „Node.js“ platforma pasirodė 2009 m. Per jos egzistavimą įvyko daugybė dalykų, kuriuos turėtų žinoti programuotojas, norintis išmokti šią platformą.

 

Trumpa Node.js istorija

 

Šiemet „Node.js“ yra 9 metai. Tai, žinoma, ne tiek svarbu, kai palyginate šį amžių su „JavaScript“ amžiumi, kuriam jau yra 23 metai, arba su 25 metų žiniatinklio amžiumi, kurį mes žinome, jei skaičiuojate nuo mozaikos atsiradimo. naršyklė.

 

9 metai yra trumpas laiko tarpas technologijoms, tačiau dabar atrodo, kad „Node.js“ platforma visada egzistavo.

 

Su „Node.js“ iš ankstyvųjų platformos versijų, kai jai buvo tik 2 metai. Jau tada, nepaisant to, kad nebuvo tiek daug informacijos apie „Node.js“, jau buvo galima jausti, kad „Node.js“ yra labai rimtas.

 

Dabar pakalbėkime apie Node.js technologijas ir greitai pažvelkime įpagrindiniai su šia platforma susiję įvykiai.

 

Taigi „JavaScript“ yra programavimo kalba, sukurta „Netscape“ kaip scenarijų kalba, skirta manipuliuoti tinklalapiais „Netscape Navigator“ naršyklėje.

Dalis „Netscape“ verslo buvo internetinių serverių pardavimas, kuris apėmė aplinką, vadinamą „Netscape LiveWire“. Tai leido jums sukurti dinaminius tinklalapius naudodami serverio „JavaScript“.

 

idėja naudoti JS kuriant serverį yra daug senesnė nei „Node.js“. Ši idėja yra beveik tokia pati kaip „JavaScript“, tačiau aptariamu metu serverio pusės JS nebuvo populiari.

 

Vienas pagrindinių veiksnių, dėl kurio „Node.js“ platforma tapo tokia plačiai paplitusi ir populiari, yra tada, kai ji pirmą kartą pasirodė. Taigi keleriais metais anksčiau „JavaScript“ buvo pradėta laikyti rimta kalba. Tai įvyko dėl „Web 2.0“ programų, tokių kaip „Google Maps“ ar „Gmail“, kurios pasauliui parodė šiuolaikinių žiniatinklio technologijų galią.

 

Dėl konkurencingo naršyklių karo, kuris tęsiasi iki šiol, „JavaScript“ variklių našumas gerokai padidėjo. Pagrindinių naršyklių kūrėjų komandos kiekvieną dieną stengiasi pagerinti savo sprendimų našumą, o tai teigiamai veikia „JavaScript“ apskritai.

 

Vienas tokių variklių yra jau minėtas V8, naudojamas „Chrome“ naršyklėje ir naudojamas „Node.js“. Tai yra vienas iš naršyklių kūrėjų, siekiančių didelio našumo „JavaScript“ kodo, rezultatų.

 

Žinoma, „Node.js“ populiarumas grindžiamas ne tik laimingu sutapimu ir tuo, kad platforma gimė tinkamu laiku. Ji supažindino pasaulį su naujovišku požiūriu į serverio pusės „JavaScript“ kūrimą. Pažvelkime į pagrindinius „Node.js“ istorijos etapus.

 

2009


  • Node.js atsiradimas

  • Pirmo npm varianto darymas.

 

2010

  • „Express“ išvaizda.

  • „Socket.io“ atsiradimas.

 

2011


  • Npm 1.0 leidimas.

  • Didelės kompanijos, tokios kaip „LinkedIn“ ir „Uber“, pradėjo naudoti „Node.js“.

 

2012


  • Spartus „Node.js“ populiarumas.

 

2013


  • „Ghost“, pirmosios pagrindinės leidinių, naudojančių „Node.js“, platformos atsiradimas.

  • Koa išleidimas.

 

2014


  • Šiemet įvyko dramatiški įvykiai. Pasirodė „IO.js“ projektas, kuris yra „Node.js“ šakutė, kurio tikslas, be kita ko, buvo įvesti ES6 palaikymą ir paspartinti platformos plėtrą.

 

2015


  • Įkuriamas Node.js fondas.

  • Sujungiami „IO.js“ ir „Node.js“.

  • Npm tampa įmanoma dirbti su privačiais moduliais.

  • Išeiga „Node.js 4“ (reikia pažymėti, kad 1, 2 ir 3 versijos iš platformos nebuvo).

 

2016


  • Kairiojo paketo incidentas.

  • Verpalų atsiradimas.

  • „Node.js“ 6 leidimas.

 

2017


  • „Npm“ pradeda skirti daugiau dėmesio saugumui.

  • „Node.js“ 8 leidimas

  • Palaikymo HTTP / 2 atsiradimas.

  • V8 yra oficialiai pripažintas JS varikliu, sukurtu ne tik „Chrome“, bet ir „Node“.

  • Kiekvieną savaitę atsisiunčiama 3 mlrd.

 

2018


  • „Node.js“ 10 leidimas.

  • ES modulių palaikymas.

  • Eksperimentinis mjs palaikymas.