Palvelinpuolen JavaScript-alustan Node.js 13.0 julkaisu

Saatavilla vapauta Solmu.js 13.0,alustoja verkkosovellusten ajamiseen JavaScriptillä. Samalla on saatu päätökseen Node.js 12.x:n edellisen haaran stabilointi, joka on siirretty pitkäaikaisten tukijulkaisujen luokkaan, jonka päivitykset julkaistaan ​​4 vuodeksi. Node.js 10.0:n edellisen LTS-haaran tuki kestää huhtikuuhun 2021 asti ja viimeisen LTS-haaran 8.0:n tuki tammikuuhun 2020 asti.

Pääasiallinen parannuksia:

  • V8-moottori päivitetty versioon 7.8, joka käyttää uusia suorituskyvyn optimointitekniikoita, parantaa objektien rakenteen tuhoamista, vähentää muistin kulutusta ja lyhentää WebAssembly-suorituksen valmisteluaikaa;
  • Täysi tuki kansainvälistymiselle ja kirjastopohjaiselle Unicodelle on oletuksena käytössä ICU (International Components for Unicode), jonka avulla kehittäjät voivat kirjoittaa koodia tukee työskennellä eri kielillä ja kielillä. Full-icu-moduuli on nyt asennettu oletusarvoisesti;
  • API vakiintunut Työntekijöiden langat, sallimalla luoda monisäikeisiä tapahtumasilmukoita. Toteutus perustuu worker_threads-moduuliin, jonka avulla voit ajaa JavaScript-koodia useissa rinnakkaisissa säikeissä. Vakaa tuki Workers Threads API:lle on myös siirretty takaisin Node.js 12.x:n LTS-haaraan;
  • Alustojen vaatimuksia on korotettu. Nyt kokoonpanoon edellytetään vähintään macOS 10.11 (vaatii Xcode 10:n), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Parannettu tuki Python 3:lle. Jos järjestelmässä on sekä Python 2 että Python 3, Python 2 on edelleen käytössä, mutta kyky rakentaa, kun järjestelmään on asennettu vain Python 3, on lisätty.
  • HTTP-jäsentimen vanha toteutus ("—http-parser=legacy") on poistettu. Poistetut tai vanhentuneet kutsut ja ominaisuudet FSWatcher.prototype.start(), ChildProcess._channel, open()-metodi ReadStream- ja WriteStream-objekteissa, request.connection, response.connection, module.createRequireFromPath();
  • jälkeen tuli ulos päivitys 13.0.1, joka korjasi nopeasti useita virheitä. Erityisesti ongelma, jossa npm 6.12.0 näyttää varoituksen ei-tuetun version käytöstä, on ratkaistu.

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