Utgivelse av JavaScript-plattformen på serversiden Node.js 13.0

Tilgjengelig utgivelse Node.js 13.0,plattformer for å kjøre nettverksapplikasjoner i JavaScript. Samtidig er stabiliseringen av den forrige grenen av Node.js 12.x fullført, som er overført til kategorien langsiktige støtteutgivelser, oppdateringer som utgis i 4 år. Støtte for den forrige LTS-grenen av Node.js 10.0 vil vare til april 2021, og støtte for den siste LTS-grenen 8.0 til januar 2020.

Den viktigste forbedringer:

  • V8-motor oppdatert til versjon 7.8, som bruker nye ytelsesoptimaliseringsteknikker, forbedrer objektdestrukturering, reduserer minneforbruk og reduserer forberedelsestiden for WebAssembly-kjøring;
  • Full støtte for internasjonalisering og bibliotekbasert Unicode er aktivert som standard ICU (International Components for Unicode), som lar utviklere skrive kode støttende jobbe med forskjellige språk og lokaliteter. Full-icu-modulen er nå installert som standard;
  • API stabilisert Arbeidstråder, tillater lage flertrådede hendelsesløkker. Implementeringen er basert på worker_threads-modulen, som lar deg kjøre JavaScript-kode i flere parallelle tråder. Stabil støtte for Workers Threads API har også blitt tilbakeportert til LTS-grenen til Node.js 12.x;
  • Kravene til plattformer er økt. For montering nå nødvendig minst macOS 10.11 (krever Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Forbedret støtte for Python 3. Hvis systemet har både Python 2 og Python 3, brukes fortsatt Python 2, men muligheten til å bygge når kun Python 3 er installert på systemet er lagt til;
  • Den gamle implementeringen av HTTP-parseren ("—http-parser=legacy") er fjernet. Fjernet eller avviklet kall og egenskaper FSWatcher.prototype.start(), ChildProcess._channel, open()-metoden i ReadStream- og WriteStream-objekter, request.connection, response.connection, module.createRequireFromPath();
  • etter kom ut oppdatering 13.0.1, som raskt fikset flere feil. Spesielt er problemet med at npm 6.12.0 viser en advarsel om bruk av en versjon som ikke støttes, løst.

La oss huske at Node.js-plattformen kan brukes både for serverstøtte for webapplikasjoner og for å lage vanlige klient- og servernettverksprogrammer. For å utvide funksjonaliteten til applikasjoner for Node.js, et stort antall samling av moduler, der du kan finne moduler med implementering av servere og klienter HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduler for integrasjon med ulike web-rammeverk, WebSocket og Ajax-behandlere, koblinger til DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), malmotorer, CSS-motorer, implementeringer av kryptografiske algoritmer og autorisasjonssystemer (OAuth), XML-parsere.

For å håndtere et stort antall parallelle forespørsler, bruker Node.js en asynkron kodeutførelsesmodell basert på ikke-blokkerende hendelsesbehandling og definering av tilbakeringingsbehandlere. Støttede metoder for multipleksing av tilkoblinger inkluderer epoll, kqueue, /dev/poll og select. Biblioteket brukes til å multiplekse tilkoblinger libuv, som er en overbygning over libev på Unix-systemer og over IOCP på Windows. Et bibliotek brukes til å lage en trådpool libeio, for å utføre DNS-spørringer i ikke-blokkerende modus er integrert c-arer. Alle systemanrop som forårsaker blokkering utføres i trådbasen og sender deretter, i likhet med signalbehandlere, resultatet av arbeidet tilbake gjennom et ikke navngitt rør. Utførelse av JavaScript-kode sikres ved bruk av en motor utviklet av Google V8 (I tillegg utvikler Microsoft en versjon av Node.js med Chakra-Core-motoren).

I kjernen ligner Node.js på rammeverk Perl AnyEvent, Ruby Event Machine, Python Twisted и gjennomføring hendelser i Tcl, men hendelsesløkken i Node.js er skjult for utvikleren og ligner hendelseshåndtering i en nettapplikasjon som kjører i en nettleser. Når du skriver applikasjoner for node.js, er det nødvendig å ta hensyn til spesifikasjonene ved hendelsesdrevet programmering, for eksempel, i stedet for å gjøre "var result = db.query("select..");" med å vente på ferdigstillelse av arbeidet og påfølgende behandling av resultatene, bruker Node.js prinsippet om asynkron utførelse, dvs. koden transformeres til "db.query("velg..", funksjon (resultat) {resultatbehandling});", der kontrollen umiddelbart vil gå over til videre kode, og søkeresultatet vil bli behandlet etter hvert som data kommer inn. .

Kilde: opennet.ru

Legg til en kommentar