Sõlm. JS (Node.JS)

Node.js on avatud lähtekoodiga platvormidevaheline JavaScripti käitusaeg, mis töötab serverites. Alates selle väljaandmisest 2009. aastal on see platvorm muutunud ülipopulaarseks ja mängib tänapäeval veebiarenduse valdkonnas väga olulist rolli.
Täieliku artikli jaoks aadressil Node.JS ...

Kuva filter
Filtrite majutamine
Host Me Host Filter

Operatsioonisüsteem

Kettaruum

RAM-mälu

Ketta tüüp

Protsessori südamikud

Sorteeri

Hinded - 9
A2hosting Logo
A2hosting

A2hostimine

Lite
$3.92 /Igakuine

50 Kupongid

Serveri asukohad


A2hosting Servers in AmsterdamHolland A2hosting Servers in MichiganÜhendriigid A2hosting Servers in SingaporeSingapur
Võrdlema
Hinded - 5.2
Dream Host Logo
Dream Host

Unistuste host

DreamObjects 40 GB
$0.95 /Igakuine

29 Kupongid

Serveri asukohad


Dream Host Servers in AshburnÜhendriigid
Võrdlema
Usaldage pilooti ICDSoft
Hinded - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - Europe
$8 /Igakuine

Arvustused 233


Serveri asukohad


ICDSoft Servers in SofiaBulgaaria ICDSoft Servers in BostonÜhendriigid ICDSoft Servers in Hong KongHongkong
Võrdlema
Usaldage pilooti ICDSoft
Hinded - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - USA
$8 /Igakuine

Arvustused 233


Serveri asukohad


ICDSoft Servers in SofiaBulgaaria ICDSoft Servers in BostonÜhendriigid ICDSoft Servers in Hong KongHongkong
Võrdlema
Usaldage pilooti Keliweb
Hinded - 9.8
Keliweb Logo
Keliweb

Keliweb

Prime
$5.51 /Igakuine

Arvustused 453


Serveri asukohad


Keliweb Servers in MilanoItaalia
Võrdlema
Usaldage pilooti JustHostMe
Hinded - 9.4
JustHostMe Logo
JustHostMe

JustHostMe

Starter
$3.11 /Igakuine

Arvustused 72


Serveri asukohad


JustHostMe Servers in United KingdomÜhendkuningriik
Võrdlema
Usaldage pilooti Dream VPS
Hinded - 8.6
Dream VPS Logo
Dream VPS

Unistuste VPS

STARTER
$3.75 /Igakuine

Arvustused 7


Serveri asukohad


Dream VPS Servers in Hong KongHongkong Dream VPS Servers in Santa Clara Dream VPS Servers in New YorkÜhendriigid Dream VPS Servers in LondonÜhendkuningriik Dream VPS Servers in AmsterdamHolland Dream VPS Servers in FrankfurtSaksamaa Dream VPS Servers in IsraelIisrael
Võrdlema
Usaldage pilooti Reseller Cube
Hinded - 8
Reseller Cube Logo
Reseller Cube

Edasimüüja kuup

Basic USA
$5 /Igakuine

Arvustused 4


Serveri asukohad


Reseller Cube Servers in RaleighÜhendriigid
Võrdlema
Usaldage pilooti Univa Host
Hinded - 8
Univa Host Logo
Univa Host

Univa host

E-ECONOMY
$2.99 /Igakuine

Arvustused 3


Serveri asukohad


Univa Host Servers in GermanySaksamaa Univa Host Servers in United StatesÜhendriigid
Võrdlema
Usaldage pilooti OperaVPS
Hinded - 7.8
OperaVPS Logo
OperaVPS

OperaVPS

Linux 512MB
$7.99 /Igakuine

Arvustused 3


Serveri asukohad


OperaVPS Servers in United KingdomÜhendkuningriik OperaVPS Servers in AustriaAustria OperaVPS Servers in CanadaKanada OperaVPS Servers in DenmarkTaani OperaVPS Servers in FrancePrantsusmaa OperaVPS Servers in GermanySaksamaa OperaVPS Servers in ItalyItaalia OperaVPS Servers in NetherlandsHolland OperaVPS Servers in RomaniaRumeenia OperaVPS Servers in United StatesÜhendriigid
Võrdlema
Usaldage pilooti L3Web Hosting
Hinded - 7.6
L3Web Hosting Logo
L3Web Hosting

L3Webi hostimine

START UP
$1.99 /Igakuine

Arvustused 2


Serveri asukohad


L3Web Hosting Servers in IndiaIndia L3Web Hosting Servers in MunichSaksamaa L3Web Hosting Servers in MiamiÜhendriigid L3Web Hosting Servers in SingaporeSingapur L3Web Hosting Servers in United KingdomÜhendkuningriik
Võrdlema
Usaldage pilooti Idea Stack
Hinded - 7.4
Idea Stack Logo
Idea Stack

Idee virn

LEVEL 1
$2 /Igakuine

Arvustused 2


Serveri asukohad


Idea Stack Servers in SeattleÜhendriigid
Võrdlema
Usaldage pilooti Epic Host
Hinded - 7.4
Epic Host Logo
Epic Host

Eepiline host

Cloud hosting
$2.37 /Igakuine

Arvustused 1


Serveri asukohad


Epic Host Servers in New DelhiIndia Epic Host Servers in UnionÜhendriigid
Võrdlema
Usaldage pilooti itanets.co.uk
Hinded - 7
itanets.co.uk Logo
itanets.co.uk

itanets.co.uk

JSP HOSTING 1
$5.19 /Igakuine

Arvustused 2

Võrdlema
Usaldage pilooti Digital Ocean
Hinded - 3.8
Digital Ocean Logo
Digital Ocean

Digitaalne ookean

$5 /mo
$5 /Igakuine

Arvustused 214

38 Kupongid

Serveri asukohad


Digital Ocean Servers in IndiaIndia Digital Ocean Servers in New YorkÜhendriigid Digital Ocean Servers in AmsterdamHolland Digital Ocean Servers in LondonÜhendkuningriik Digital Ocean Servers in TorontoKanada Digital Ocean Servers in Frankfurt am MainSaksamaa Digital Ocean Servers in SingaporeSingapur
Võrdlema
Hinded - 10
HOST PRO KE Logo
HOST PRO KE

HOST PRO KE

Host Pro Starter
$9.38 /Iga-aastane


Serveri asukohad


HOST PRO KE Servers in GermanySaksamaa
Võrdlema
Hinded - 9.4
Accu WebHosting Logo
Accu WebHosting

Accu veebihosting

Windows Personal Web Hosting
$2.99 /Igakuine

19 Kupongid

Serveri asukohad


Accu WebHosting Servers in FrancePrantsusmaa Accu WebHosting Servers in DenverÜhendriigid Accu WebHosting Servers in MumbaiIndia Accu WebHosting Servers in AmsterdamHolland Accu WebHosting Servers in Frankfurt am MainSaksamaa Accu WebHosting Servers in SydneyAustraalia Accu WebHosting Servers in LondonÜhendkuningriik Accu WebHosting Servers in PolandPoola Accu WebHosting Servers in CanadaKanada Accu WebHosting Servers in SingaporeSingapur
Võrdlema
Hinded - 9
Be hostings Logo
Be hostings

Ole võõrustaja

StarterSSL
$3.36 /Igakuine


Serveri asukohad


Be hostings Servers in BrusselsBelgia
Võrdlema
Hinded - 4.3
Gear Host Logo
Gear Host

Gear Host

CloudSite Hobby
$5 /Igakuine


Serveri asukohad


Gear Host Servers in DenverÜhendriigid
Võrdlema
Hinded - 1
Mikro VPS Logo
Mikro VPS

Mikro VPS

VPS SSD 1
$4.39 /Igakuine


Serveri asukohad


Mikro VPS Servers in BudapestUngari
Võrdlema
Hinded - 0
Simple Node Logo
Simple Node

Lihtne sõlm

OpenVZ - 256MB
$3 /Igakuine

Võrdlema

 

Node.js

 

 

Node.js on avatud lähtekoodiga platvormidevaheline JavaScripti käitusaeg, mis töötab serverites. Alates selle väljaandmisest 2009. aastal on see platvorm muutunud ülipopulaarseks ja mängib tänapäeval veebiarenduse valdkonnas väga olulist rolli. Kui arvestada populaarsuse näitajaks seda, kui palju tähti on projekt GitHubis kogunud, siis üle 50 000 tähega Node.js on väga-väga populaarne projekt.

 

Node.js platvorm on üles ehitatud Google'i V8 JavaScripti mootorile, mida kasutatakse Google Chrome'i brauseris. Seda platvormi kasutatakse peamiselt veebiserverite loomiseks, kuid selle ulatus ei piirdu sellega.

 

Vaatame Node.js põhijooni.

 

Kiirus

 

Node.js üks peamisi vaatamisväärsusi on kiirus. Node.js-is käivitatav JavaScripti kood võib olla kaks korda kiirem kui kompileeritud keeltes nagu C või Java kirjutatud kood ja suurusjärkude võrra kiirem kui tõlgendatud keeled nagu Python või Ruby. Selle põhjuseks on platvormi mitteblokeeriv arhitektuur ja konkreetsed tulemused sõltuvad kasutatavatest võrdlusalustest, kuid üldiselt on Node.js väga kiire platvorm.

 

Lihtsus

 

Node.js platvormi on lihtne õppida ja kasutada. Tegelikult on see lausa väga lihtne, eriti kui võrrelda seda mõne muu serveriplatvormiga.

 

JavaScripti

 

JavaScripti käivitatakse keskkonnas Node.js. See tähendab, et miljonid esiotsa arendajad, kes juba kasutavad brauseris JavaScripti, saavad kirjutada nii serveripoolse kui ka kliendipoolse koodi samas programmeerimiskeeles, ilma et peaksid õppima täiesti uut tööriista serveripoolse arenduse juurde liikumiseks.

 

Brauser ja server kasutavad samu keelekontseptsioone. Lisaks saab Node.js kiiresti üle minna uutele ECMAScript standarditele, kuna need on platvormil rakendatud.

 

Selle jaoks pole vaja oodata, kuni kasutajad oma brausereid värskendavad, kuna Node.js on serveripoolne keskkond, mis on arendaja täielikult kontrolli all. Seetõttu muutuvad Node.js toetava versiooni installimisel kättesaadavaks uued keelefunktsioonid.

 

V8 mootor

 

Node.js keskmes on muude lahenduste hulgas ka Google'i avatud lähtekoodiga JavaScripti V8-mootor, mida kasutatakse Google Chrome'is ja muudes brauserites. See tähendab, et Node.js kasutab ära tuhandeid insenere, kes tegid JavaScripti Chrome'i tööaja uskumatult kiiresti ja jätkavad tööd V8 täiustamise nimel.

 

Asünkroonia

 

Traditsioonilistes programmeerimiskeeltes (C, Java, Python, PHP) on kõik juhised vaikimisi blokeeritud, välja arvatud juhul, kui arendaja otseselt hoolitseb koodi asünkroonse täitmise eest. Selle tulemusena, kui näiteks sellises keskkonnas esitate mõne JSON-koodi allalaadimiseks võrgutaotluse, peatatakse voo, millest päring tehakse, täitmine kuni vastuse saabumiseni ja töötlemiseni.

 

JavaScripti abil on asünkroonse ja blokeerimata koodi kirjutamine ühe lõime, tagasihelistamise ja sündmustepõhise lähenemisviisi abil palju lihtsam. Iga kord, kui peame rasket toimingut sooritama, edastame vastava mehhanismi tagasihelistamise, millele helistatakse kohe pärast selle toimingu lõpetamist. Seetõttu ei pea programmi jätkamiseks ootama selliste toimingute tulemusi.

 

Sarnane mehhanism pärineb ka brauseritest. Me ei saa endale lubada oodata näiteksAJAXtaotlus lõpetada, ilma et oleks võimalik reageerida kasutaja toimingutele, näiteks nupuvajutusele. Et kasutajatel oleks mugav veebilehtedega töötada, peab kõik, nii andmete allalaadimine võrgust kui ka nupuvajutuste töötlemine toimuma samaaegselt, reaalajas.

 

Kui olete kunagi loonud nupuvajutusega sündmuste käitleja, olete juba kasutanud asünkroonseid programmeerimistehnikaid.

 

Asünkroonsed mehhanismid võimaldavad ühel Node.js-serveril korraga käsitseda tuhandeid ühendusi, koormamata programmeerijat lõimehalduse ja paralleelsete koodi täitmise ülesannetega. Sellised asjad on sageli veaallikad.

 

Node.js pakub arendajale mitteblokeerivaid sisend- / väljundmehhanisme ja üldiselt on Node.js-i raamistikus kasutatavad teegid kirjutatud blokeerimata paradigmade abil.See muudab käitumise blokeerimise pigem erandiks kui normiks.

 

Kui Node.js peab sellise toimingu tulemusi ootava peaniidi blokeerimise asemel tegema sisend- / väljundoperatsiooni, näiteks võrgust andmete laadimise, andmebaasi või failisüsteemi juurdepääsu, algatab Node.js selle ja jätkake muude toimingute tegemist, kuni selle toimingu tulemused on kätte saadud.

 

Raamatukogud

 

Node.js paketihalduriga töötamise lihtsus ja mugavus on nimega npm, Node.js ökosüsteem õitseb. Nüüd on npm registris üle poole miljoni avatud lähtekoodiga paketi, mida iga Node.js arendaja saab vabalt kasutada.

 

Olles üle vaadanud platvormi Node.js mõned põhifunktsioonid, proovime seda toiminguna proovida. Alustame installimisega.

 

 

Node.js

 

 

Node.js installimine

 

Node.js-i saab installida mitmel viisil, mida me hetkega kajastame. Seega leiate kõigi suuremate platvormide ametlikud installipaketid.

 

Node.js installimiseks on veel üks väga mugav viis, milleks on opsüsteemis pakutavate pakettihalduri kasutamine. Näiteks nimetatakse selles piirkonnas de facto standardiks olevat macOS-i paketihaldurit Homebrew.

 

Kui teie süsteemis on selline, saate Node.js installida, käivitades selle käsu käsureal:

 

pruulimise installisõlm

 

Teiste operatsioonisüsteemide, sealhulgas Linuxi ja Windowsi pakettihaldurite loendi leiate siit.

 

Populaarne Node.js versioonihaldur on nvm. See tööriist võimaldab teil mugavalt Node.js-i erinevate versioonide vahel vahetada, selle abiga saate näiteks installida ja proovida Node.js-i uut versiooni ning seejärel vajaduse korral naasta vanale. Nvm on kasulik ka olukorras, kus peate mõnda koodi proovima Node.js vanal versioonil.

 

Algajatele kasutada ametlikke Node.js installijaid. MacOS-i kasutajate jaoks soovitaks Node.js installida Homebrew abil. Nüüd, kui olete installinud Node.js, on aeg kirjutada "Tere maailm".

 

Esimene rakendus Node.js

 

Esimese Node.js-rakenduse kõige tavalisem näide on lihtne veebiserver. Siin on selle kood:

const http = nõuda ('http')

const hostname = '127.0.0.1'

const port = 3000

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

res.statusCode = 200

res.setHeader ('Sisutüüp', 'tekst / tavaline')

res.end ('Tere maailm \ n')

})

server.listen (port, hostinimi, () = & gt; {

console.log („Server töötab aadressil http: // $ {hostname}: $ {port} /`)

})

 

Selle koodi käivitamiseks salvestage see faili server.js ja käivitage terminalis järgmine käsk:

 

sõlm server.js

 

Serveri kontrollimiseks avage brauser ja sisestage aadressiribale http://127.0.0.1:3000, see tähendab serveri aadress, mis kuvatakse konsoolis pärast selle edukat käivitamist. Kui kõik töötab nii, nagu peaks, kuvatakse lehel kiri "Tere maailm".

 

Vaatame seda näidet.

 

Kõigepealt pange tähele, et kood sisaldab käsku HTTP-mooduli ühendamiseks.

 

Node.js platvormil on suurepärane standardne moodulite komplekt, mis sisaldab hästi välja töötatud mehhanisme võrguga töötamiseks.

Objekti meetod createServer () loob uue HTTP-serveri ja tagastab selle.

 

Server on konfigureeritud kuulama kindla hosti kindlat porti. Kui server on valmis, kutsutakse vastavat tagasihelistamist, mis annab meile teada, et server töötab.

Kui server saab päringu, käivitatakse sündmuse taotlus, mis esitab kaks objekti. Esimene on päring (req, objekt http.IncomingMessage), teine ​​on vastus (res, objekt http.ServerResponse). Need on HTTP-päringute käsitlemise kõige olulisemad mehhanismid.

 

Esimene annab meile teavet päringu kohta. Meie lihtsas näites me neid andmeid ei kasuta, kuid vajadusel saate objekti kasutades pääseda juurde päringute päistele ja selles edastatud andmetele.

 

Teist on vaja päringu vormistamiseks ja vastuse saatmiseks.

 

Sellisel juhul moodustame vastuse päringule järgmiselt. Esiteks määrasime atribuudi oleku koodiks väärtus 200, mis näitab edukat toimingut:

 

res.statusCode = 200

Järgmisena määrasime pealkirja Content-Type:

res.setHeader ('Sisutüüp', 'tekst / tavaline')

Seejärel lõpetame vastuse ettevalmistamise, lisades selle sisu argumendina meetodi lõppu ():

res.end ('Tere maailm \ n')

 

Oleme juba maininud, et Node.js platvormi ümber on tekkinud võimas ökosüsteem. Arutame nüüd Node.js-i populaarseid raamistikke ja abivahendeid.

 

Raamistikud ja abivahendid Node.js-le

 

Node.js on madala taseme platvorm. Selle arendamise lihtsustamiseks ja programmeerijate elu lihtsustamiseks on loodud tohutu arv raamatukogusid. Mõni neist on aja jooksul muutunud väga populaarseks. Siin on väike loetelu raamatukogudest, mis on minu arvates hästi tehtud ja mida tasub uurida:

 

Ekspress: See teek pakub arendajale ülimalt lihtsa, kuid võimsa tööriista veebiserverite loomiseks. Expressi edu võti on olnud minimalistlik lähenemine ja keskendumine põhilistele serveripoolsetele mehhanismidele, püüdmata kehtestada visiooni "ühe peatuse" serveri arhitektuurist.

 

Meteor: See on võimas täispika raamistik, mis kasutab isomorfset lähenemist JavaScripti rakenduste väljatöötamiseks ja koodi kasutamiseks nii kliendis kui ka serveris. Kunagi oli Meteor eraldiseisev tööriist, mis sisaldab kõike, mida arendajal vaja võib minna. Nüüd integreerub see ka eesmiste teekidega nagu React, Vue ja Angular. Lisaks levinud veebirakenduste väljatöötamisele saab Meteorit kasutada ka mobiiliarenduses.

 

Koa: Selle veebiraamistiku on üles ehitanud sama meeskond Expressi taga. Tuginedes Expressi aastatepikkusele kogemusele, töötati see välja keskendudes lihtsusele ja kompaktsusele. See projekt leidis lahenduse probleemile teha Expressis suuri muudatusi, mis ei sobi kokku teiste raamistiku mehhanismidega, mis võivad kogukonda lõhestada.

 

Järgmine.js: See raamistik on mõeldud React-rakenduste serveripoolse renderdamise korraldamiseks.

 

Mikro: See on väga kerge teek asünkroonsete HTTP-mikroteenuste loomiseks.

Socket.io. See on reaalajas võrgurakenduste väljatöötamise raamatukogu.

 

Tegelikult leiate Node.js ökosüsteemist peaaegu iga ülesande jaoks abiteeki. Nagu võite ette kujutada, võtab sellise ökosüsteemi ülesehitamine palju aega. Node.js platvorm ilmus 2009. aastal. Selle olemasolu jooksul on juhtunud palju asju, mida peaks teadma programmeerija, kes soovib seda platvormi õppida.

 

Node.js lühike ajalugu

 

Node.js on sel aastal 9-aastane. See pole muidugi nii palju, kui võrrelda seda vanust JavaScripti vanusega, mis on juba 23 aastat vana, või veebi 25-aastase vanusega, nagu me teame, kui loete Mosaiigi tulekust brauser.

 

9 aastat on tehnoloogia jaoks lühike aeg, kuid nüüd näib, et Node.js platvorm on alati olemas olnud.

 

Node.js-iga platvormi varasematest versioonidest, kui see oli ainult 2 aastat vana. Isegi siis, hoolimata sellest, et Node.js-i kohta nii palju teavet polnud, võis juba tunda, et Node.js on väga tõsine.

 

Räägime nüüd Node.js-i taga olevatest tehnoloogiatest ja vaatame seda kiirestiselle platvormiga seotud peamised arengud.

 

Nii et JavaScript on programmeerimiskeel, mis loodi Netscape'is skriptikeelena veebilehtede manipuleerimiseks Netscape Navigatori brauseris.

Osa Netscape'i ärist oli veebiserverite müümine, mis hõlmas ka keskkonda nimega Netscape LiveWire. See võimaldas teil luua serveripoolse JavaScripti abil dünaamilisi veebilehti.

 

idee kasutada JS-i serveripoolseks arendamiseks on palju vanem kui Node.js. See idee on peaaegu sama vana kui JavaScript ise, kuid kõnealusel ajal ei olnud serveripoolne JS populaarne.

 

Üks võtmetegureid, mis muutis Node.js platvormi nii laialt levinud ja populaarseks, on selle esmakordne ilmumine. Nii oli mõni aasta varem JavaScripti hakatud pidama tõsiseks keeleks. See juhtus tänu Web 2.0 rakendustele nagu Google Maps või Gmail, mis näitasid maailmale tänapäevaste veebitehnoloogiate jõudu.

 

Tänu brauserite konkurentsisõjale, mis kestab tänaseni, on JavaScripti mootorite jõudlus märkimisväärselt tõusnud. Suuremate brauserite taga olevad arendustiimid töötavad iga päev oma lahenduste jõudluse parandamise nimel, millel on JavaScripti jaoks üldiselt kasulik mõju.

 

Üheks selliseks mootoriks on juba mainitud V8, mida kasutatakse Chrome'i brauseris ja mida kasutatakse saidil Node.js. See on üks brauseriarendajate tulemusi, mis püüdleb suure jõudlusega JavaScripti koodi poole.

 

Muidugi ei põhine Node.js populaarsus mitte ainult õnnelikul kokkusattumusel ja sellel, et platvorm sündis õigel ajal. Ta tutvustas maailmale uudset lähenemist serveripoolse JavaScripti arendamisele. Vaatame peamisi verstaposte Node.js ajaloos.

 

2009


  • Node.js tekkimine

  • Esimese npm variandi tegemine.

 

2010

  • Expressi välimus.

  • Socket.io tekkimine.

 

2011


  • Npm 1.0 vabastamine.

  • Suured ettevõtted nagu LinkedIn ja Uber on hakanud Node.js kasutama.

 

2012


  • Node.js populaarsuse kiire tõus

 

2013


  • Ghost, esimese suurema Node.js-i kasutavate väljaannete platvormi ilmumine.

  • Koa vabastamine.

 

2014


  • Sel aastal on toimunud dramaatilisi sündmusi. Ilmus projekt IO.js, mis on Node.js kahvli, mille eesmärk oli muu hulgas tutvustada ES6 tuge ja kiirendada platvormi arengut.

 

2015


  • Asutatakse sihtasutus Node.js.

  • IO.js ja Node.js ühendamine

  • Npm-s on võimalik töötada eramoodulitega.

  • Saagis Node.js 4 (tuleb märkida, et platvormi versioonid 1, 2 ja 3 ei olnud).

 

2016


  • Vasakpoolse paki juhtum.

  • Lõnga tekkimine.

  • Node.js 6 väljaanne.

 

2017


  • Npm hakkab turvalisusele rohkem tähelepanu pöörama.

  • Node.js 8 väljalaskmine

  • HTTP / 2 toe tekkimine.

  • V8 on ametlikult tunnustatud JS-mootorina, mis on mõeldud mitte ainult Chrome'ile, vaid ka Node'ile.

  • Igal nädalal saab alla laadida 3 miljardit npm.

 

2018


  • Node.js 10 väljaanne.

  • ES-moodulite tugi.

  • Eksperimentaalne mjs tugi.