Palvelinpuolen JavaScript-alustan Node.js 14.0 julkaisu

tapahtui vapauta Solmu.js 14.0,alustoja verkkosovellusten ajamiseen JavaScriptillä. Node.js 14.0 on pitkän aikavälin tukihaara, mutta tämä tila määritetään vasta lokakuussa vakauttamisen jälkeen. Node.js 14.0:aa tuetaan suoritetaan huhtikuuhun 2023 asti. Node.js 12.0:n aiemman LTS-haaran ylläpito kestää huhtikuuhun 2022 asti ja edellisen vuoden LTS-haaran 10.0:n huhtikuuhun 2021 asti. 13.x:n lavastushaaran tuki päättyy tämän vuoden kesäkuussa.

Pääasiallinen parannuksia:

  • Kyky generoida lennossa tai tiettyjen tapahtumien sattuessa on vakiintunut diagnostiset raportit, jotka näyttävät tapahtumia, jotka auttavat diagnosoimaan ongelmia, kuten kaatumisia, suorituskyvyn heikkenemistä, muistivuotoja, raskasta suorittimen kuormitusta, odottamattomia virheitä jne.
  • Lisätty kokeellinen API-tuki Async paikallinen tallennustila AsyncLocalStorage-luokan toteutuksella, jonka avulla voidaan luoda asynkroninen tila käsittelijöiden kanssa takaisinsoittokutsujen ja lupausten perusteella. AsyncLocalStorage antaa sinun tallentaa tietoja verkkopyynnön käsittelyn aikana, mikä muistuttaa säikeen paikallista tallennusta muilla kielillä.
  • Poistettu varoitusviesti kokeellisesta ominaisuudesta latauksen aikana moduulit ECMAScript 6 yhdistetty ja viety käyttämällä tuonti- ja vientilausuntoja. Samaan aikaan itse ESM-moduulien toteutus on kokeellista.
  • V8-moottori päivitetty versioon 8.1 (1, 2, 3), joka sisältää uusia suorituskyvyn optimointeja ja ominaisuuksia, kuten uuden loogisen ketjutusoperaattorin "???" (palauttaa oikean operandin, jos vasen operandi on NULL tai määrittelemätön ja päinvastoin), operaattori "?." koko ominaisuusketjun tai kutsujen (esimerkiksi "db?.user?.name?.length" ilman ennakkotarkastuksia) kertatarkistukseen, Intl.DisplayName-menetelmä lokalisoitujen nimien saamiseksi jne.
  • Streams API:lle tehtiin revisio, jonka tavoitteena oli parantaa Streams API:iden johdonmukaisuutta ja eliminoida erot Node.js:n perusosien käyttäytymisessä. Esimerkiksi http.OutgoingMessage käyttäytyy lähellä stream.Writablea ja net.Socket on samanlainen kuin stream.Duplex. AutoDestroy-vaihtoehdon oletusarvo on "true", mikä tarkoittaa "_destroy":n kutsumista valmistumisen jälkeen.
  • Lisätty kokeellinen API-tuki OLINKO MINÄ (WebAssembly-järjestelmän käyttöliittymä), joka tarjoaa ohjelmistoliittymiä suoraa vuorovaikutusta varten käyttöjärjestelmän kanssa (POSIX API tiedostojen, pistokkeiden jne. käsittelyyn).
  • Lisääntyneet vaatimukset minimaaliset versiot kääntäjät ja alustat: macOS 10.13 (High Sierra), GCC 6, Windows uudempi 7/2008R2.

Muistetaan, että Node.js-alustaa voidaan käyttää sekä web-sovellusten palvelinpuolen tukemiseen että tavallisten asiakas- ja palvelinverkkoohjelmien luomiseen. Node.js-sovellusten toiminnallisuuden laajentamiseksi suuri määrä moduulien kokoelma, josta löydät moduuleja palvelimien ja asiakkaiden HTTP-, SMTP-, XMPP-, DNS-, FTP-, IMAP-, POP3-toteutukseen, moduuleja integrointiin erilaisiin verkkokehyksiin, WebSocket- ja Ajax-käsittelijöitä, liittimiä DBMS-järjestelmään (MySQL, PostgreSQL, SQLite) , MongoDB ), mallimoottorit, CSS-moottorit, salausalgoritmien ja valtuutusjärjestelmien (OAuth) toteutukset, XML-jäsentimet.

Käsitelläkseen suuria määriä rinnakkaisia ​​pyyntöjä Node.js käyttää asynkronista koodin suoritusmallia, joka perustuu ei-estoiseen tapahtumakäsittelyyn ja takaisinsoittokäsittelijöiden määrittämiseen. Tuettuja yhteyksien multipleksointimenetelmiä ovat epoll, kqueue, /dev/poll ja select. Kirjastoa käytetään multipleksoimaan yhteyksiä libuv, joka on päällysrakenne yli libev Unix-järjestelmissä ja IOCP:n kautta Windowsissa. Kirjastoa käytetään säievalikoiman luomiseen libeio, DNS-kyselyjen suorittamiseen estotilassa on integroitu c-ares. Kaikki estoa aiheuttavat järjestelmäkutsut suoritetaan säikeen alla, ja sitten signaalinkäsittelijöiden tavoin ne välittävät työnsä tuloksen takaisin nimettömän putken kautta. JavaScript-koodin suorittaminen varmistetaan Googlen kehittämän moottorin avulla V8 (Lisäksi Microsoft kehittää Node.js-versiota Chakra-Core-moottorilla).

Pohjimmiltaan Node.js on samanlainen kuin puitteet Perl AnyEvent, Ruby Tapahtumakone, Python Twisted и toteutus tapahtumia Tcl:ssä, mutta Node.js:n tapahtumasilmukka on piilotettu kehittäjältä ja muistuttaa tapahtumankäsittelyä selaimessa ajettavassa verkkosovelluksessa. Kun kirjoitat sovelluksia node.js:lle, on otettava huomioon esimerkiksi tapahtumaohjatun ohjelmoinnin erityispiirteet, sen sijaan että tekisit "var result = db.query("select..");" työn valmistumisen odottamisessa ja tulosten myöhemmässä käsittelyssä Node.js käyttää asynkronisen suorituksen periaatetta, ts. koodi muunnetaan muotoon "db.query("select..", funktio (tulos) {tuloksen käsittely});", jossa ohjaus siirtyy välittömästi seuraavalle koodille ja kyselyn tulos käsitellään tietojen saapuessa. .

Lähde: opennet.ru

Lisää kommentti