MezglsJS

Kas ir NodeJS?

Kas ir NodeJS?

Šajā apmācībā mēs sāksim darbu ar Node.js. Uzziniet par dažām tās populārākajām funkcijām un centīsimies motivēt lasītājus pieņemt šo brīnišķīgo tehnoloģiju saviem nākotnes projektiem. Kā priekšnoteikums jums vienkārši jāpārzina JavaScript un vispārīgas programmēšanas koncepcijas, piemēram, mainīgie, datu tipi un funkcijas.

JavaScript ir savāda vēsture. Tas sākās kā viegla skriptu valoda tīmekļa pārlūkprogrammām, un pret to drīzāk izturējās kā pret “rotaļlietu” nekā par nopietnu programmēšanas valodu. Bet tas jau sen ir pāraudzis savu pazemīgo sākumu.

Cilvēki sāka paplašināt savas iespējas, kad Google atklāja Chrome JavaScript tulku - V8 motoru. Mezgls.js paņem šo JavaScript dzinēju un paplašina to, lai darbotos ārpus pārlūka sfēras. Mezgls.js sasaista JavaScript ar jūsu operētājsistēmas API, lai tas varētu darboties dabiski serverī (vai izstrādātāja gadījumā uz viņa / viņas darbvirsmas). Jā, tas nozīmē, ka jūs varat ieviest servera puses lietojumprogrammas, darbvirsmas lietojumprogrammas un aizmugures mehānismus, apgūstot tikai vienu valodu - JavaScript.

Vienkārši sakot, jūs varat rakstīt .js faili, kas satur JavaScript sintaksē rakstītas programmas, kuras interpretēs mezgls.js līdzīgi kā .py failus ar derīgu sintaksi tulko / izpilda pitona tulks.

Tomēr tas ir vairāk nekā tikai valodas zināšana, tomēr Node.JS ir nepazīstami moduļi un jēdzieni, kas prasītu pacietību nebeidzamā jauno koncepciju apguves ciklā. Tam ir savs pakotņu pārvaldnieks (npm), versiju pārvaldnieks (nvm) un pasaulē lielākais pakotņu reģistrs. Esiet drošs, ka sākotnējās grūtības ilgtermiņā padarīs jūsu dzīvi daudz vieglāku.

Uzstādīšana

Pašlaik mezglam ir divas iespējas.js versijas, kuras jūs varētu vēlēties apsvērt.

Mēs paliksim pie LTS versijas. Lejupielādējot mezglu no operētājsistēmas oficiālās vietnes, tiks instalēts arī mezglu pakotņu pārvaldnieks (npm). Par Mezglu ir grūti runāt.js neiekļūstot npm. Mēs vēlāk atgriezīsimies pie pakešu pārvaldnieka. Ja izmantojat Ubuntu vai jebkuru citu debian izplatītāju, vienkārši izmantojiet:

$ sudo apt instalējiet mezglus

Visus bināros failus un pirmkodu skatiet oficiālajā lejupielādes lapā.

Tas ir ar instalāciju, laiks pateikt: “Sveika, Pasaule!”

Sveika pasaule! Un servera izveide

Kā solīts, mēs izveidosim Sveiki.js failu un palaidiet to, izmantojot mezglu. Vienkāršā teksta failā, ko sauc Sveiki.js, mēs uzrakstām šādu rindu:

konsole.žurnāls (“Sveika, pasaule!”);

Tagad saglabājiet failu un atveriet termināli tajā pašā direktorijā, kurā atrodas šis fails, un izpildiet šādu komandu:

$ mezgls sveiki.js
Vai arī jūs varat palaist
$ mezgls sveiki

Tas jums dos vēlamo "Sveika pasaule". Tāpat kā vaniļas JavaScript. Bet, protams, mēs varam darīt labāk ..

Atšķirībā no PHP balstītām lietojumprogrammām, kurām ir nepieciešama Apache vai Nginx vai kādas citas tīmekļa servera programmas darbība, mezglā mēs rakstām paši savus http maršrutus, konfigurējam porti un resursdatora nosaukumus un apstrādājam HTTP pieprasījumus, lai sniegtu atbilstošas ​​atbildes.

Izklausās pēc daudz darba, taču tas ir tikai sākotnējs šķērslis mācīšanās līknē, un, tiklīdz esat pieķēries lietas, varēsiet saprast tīmekļa lietojumprogrammas dziļāk nekā jebkad agrāk. Izveidosim tīmekļa serveri, kas noklausās portu 3000 localhost un atbildē atgriež teksta failu. Izveidojiet failu lietotne.js ar šādu saturu:

const http = pieprasīt ('http');
const resursdatora nosaukums = '127.0.0.1 ';
konst ports = 3000;
const serveris = http.createServer ((req, res) =>
rez.statusCode = 200;
rez.setHeader ('Content-Type', 'text / plain');
rez.beigas ('Sveika pasaule \ n');
);
serveris.klausīties (ports, resursdatora nosaukums, () =>
konsole.žurnāls ('Serveris darbojas vietnē http: // $ resursdatora nosaukums: $ ports /');
);

Pirms mēs iekļūstam koda detaļās, saglabājiet šo failu un atveriet termināli tajā pašā direktorijā kā fails, pēc tam palaidiet:

$ node lietotne

Tas izpildīs lietotne.js failu, un jūs iegūsiet šādu izvadi:

Atveriet tīmekļa pārlūkprogrammu un apmeklējiet vietni http: // localhost: 3000 / vai http: // 127.0.0.1: 3000 /, lai pārlūkprogrammas logā redzētu vienkāršu Hello World tekstu.

Tātad, ko mēs tikko izdarījām? Nu, ja jums ir zināms JavaScript, jūs droši vien varat saprast kādu no tiem ..

The pirmā līnija importē moduli http, kas ir iebūvēts modulis, kas nāk kopā ar mezglu, un tas palīdz mums klausīties tīmekļa kontaktligzdās pieprasījumus, apstrādāt http pieprasījumus un sniegt atbilstošas ​​atbildes.

The otrā un trešā līnija nosaka resursdatora nosaukums uz "127.0.0.1 ' un osta  uz 3000. Tas nozīmē, ka mēs varam turpināt atkārtoti izmantot mainīgo resursdatora nosaukums un osta, tā vietā, lai ierakstītu visu IP adresi. Vēlāk, kad jūs to faktiski izvietojat serverī, tas tiks aizstāts ar servera IP adresi un porta numuru, piemēram, 80 vai 443, ja tas ir tīmekļa serveris. Atslēgvārds konst nodrošina, ka mainīgo nevar mainīt citur programmā.

The līnijas četri līdz astoņi  izveido servera objektu, kas pieprasījumu uztver kā pieprasījums un sniedz atbildi kā rez.

Atbildei ir statusa kods atribūts rez.statusCode kas ir iestatīts uz 200, kuru klients interpretē kā “Labi” statusu. Kļūdu kodi ir 400 un 500, piemēram, kļūda 404 ir kods resursam, kas nav atrasts. Līdzīgi kā setHeader atribūts ir iestatīts uz “text / plain”, kas nozīmē, ka klients saņems vienkāršu tekstu. Varat to iestatīt uz HTML, un jūsu pārlūkprogramma atveidos jebkuru derīgu html, ar kuru serveris atbild. Un beigas atribūts ir vienkārši teksts, kuru mēs vēlamies atgriezt. Tā vietā, lai šeit būtu virkne, reālās pasaules lietojumprogrammām būs statisks vai cits HTML fails .js failu klienta pārlūkprogrammai, kas būtu daudz noderīgāka atbilde.

Visbeidzot pēdējās trīs rindas palaiž serveri un izdrukā ziņojumu, kurā teikts, ka tas ir aktīvs noteiktam resursdatora nosaukumam un porta numuram, kā to iestatījis konst sākotnēji paziņojumus. Ikreiz, kad norādītajā resursdatora nosaukumā: porta kombinācijas serveris dod jaunu pieprasījumu, tiek atbildēts ar atbilstošu atbildi objekts.

Ko tas nozīmē?

Lai uzzinātu sekas, jums nav jāsaprot iepriekš minētais kods kopumā. Pateicoties tādiem lieliskiem ietvariem kā Angular un React, mums jau ir JavaScript priekšpusē. Līdz ar to mums ir arī back-end funkcijas, kas ceptas mezglā.js ētoss.

Tīmekļa ietvari, piemēram, Express.js var palīdzēt jums uzrakstīt vēl sarežģītāku lietojumprogrammu virs mezgla.js. Datu iegūšanu no datu bāzes, API veidošanu un priekšējās saskarnes visu var rakstīt, izmantojot vienu valodu.

V8 spēks

Neskatoties uz to, ka tā ir viena valoda, vēl daudz jāmācās. Dažādiem ietvariem un moduļiem ir dažādas funkcionalitātes. Ir daudz tonnu versiju, kurām sekot. Tātad, vai ir kādi citi ieguvumi no mezgla izmantošanas.js ekosistēma.

Viens no svarīgākajiem argumentiem, kas to atbalsta, ir tas, ka V8 motoram ir lielisks atbalsts asinhronam, nebloķējošam I / O. Tas būtībā nozīmē, ka viens process, kas darbojas jūsu sistēmas atmiņā, var apstrādāt vairākus ienākošos pieprasījumus. Tas aptuveni nozīmē to, ka, ja tiek apstrādāts viens pieprasījums un ienāk cits pieprasījums, mezgls ir spējīgs sākt apstrādāt jauno pieprasījumu, pat ja pirmais pieprasījums vēl nav pabeigts.

Turklāt viens process, kas darbojas jūsu atmiņā, ir atbildīgs par visu ienākošo pieprasījumu apstrādi. Atšķirībā no PHP balstītām lietojumprogrammām, kas rada jaunu procesu katram ienākošajam pieprasījumam.

Cerams, ka šis ievads bija pietiekams, lai jūs motivētu par Node.js. Ziniet, vai vēlaties saņemt padziļinātākas apmācības par līdzīgām tēmām, sekojot mums Twitter, Facebook un YouTube.

Cīņa par Vesnotu 1.13.6 Izlaista attīstība
Cīņa par Vesnotu 1.13.6 izlaists pagājušajā mēnesī, ir sestais izstrādes izlaidums 1.13.x sērija un tā nodrošina vairākus uzlabojumus, īpaši lietotāja...
Kā instalēt League of Legends operētājsistēmā Ubuntu 14.04
Ja jūs esat League of Legends fans, tad šī ir iespēja jums izmēģināt League of Legends. Ņemiet vērā, ka LOL tiek atbalstīts PlayOnLinux, ja esat Linux...
Instalējiet jaunāko OpenRA stratēģijas spēli Ubuntu Linux
OpenRA ir bezmaksas / bezmaksas reāllaika stratēģijas spēļu dzinējs, kas atjauno agrīnās Vestvudas spēles, piemēram, klasisko Command & Conquer: Red A...