Utgivelse av serverbasert JavaScript-plattform Node.js 14.0

Har funnet sted versjon Node.js 14.0, en plattform for å kjøre nettapplikasjoner skrevet i JavaScript. Node.js 14.0 tilhører linjene med langvarig støtte, men denne statusen vil bli tildelt først i oktober, etter stabilisering. Støtte for Node.js 14.0 vil bli gitt til april 2023. Støtten til den forrige LTS-linjen, Node.js 12.0, vil vare til april 2022, mens støtten for den før det, LTS-linjen 10.0, vil vare til april 2021. Støtten for den midlertidige linjen 13.x avsluttes i juni i år.

Viktige forbedringer:

  • Støtten for generering av på-fly eller ved bestemte hendelser diagnoserapporter, som reflekterer hendelser som hjelper med å diagnostisere problemer som krasj, ytelsestap, minnelekkasjer, høy CPU-belastning, uventet feilmeldinger osv.
  • Eksperimentell støtte for API-er Async Local Storage med implementeringen av klassen AsyncLocalStorage, som kan brukes til å lage asynkrone tilstander med callback-baserte håndterere og løfter. AsyncLocalStorage lar deg lagre data under behandling av webforespørselen, påminner om lokalisert lagring for enkelttråder (Thread-Local Storage) i andre språk.
  • Advarselen om eksperimentell funksjonalitet har blitt fjernet ved lasting moduler ECMAScript 6 som lastes og eksporteres ved hjelp av import- og export-uttrykk. Imidlertid forblir selve implementeringen av ESM-moduler fortsatt eksperimentell.
  • V8-motoren er oppdatert til versjon 8.1 (1, 2, 3), der det er gjort nye ytelsesoptimaliseringer og lagt til nye funksjoner, som den nye logiske sammenslåingsoperatøren «??» (returnerer høyreoperand hvis venstreoperand er NULL eller undefined, og omvendt), operatoren «?.» for engangskontroll av hele egenskapers eller metoders kjede (for eksempel «db?.user?.name?.length» uten forhåndskontroller), metoden Intl.DisplayName for å hente lokaliserte navn osv.
  • En revisjon av API Streams har blitt gjennomført, rettet mot å forbedre konsistensen av Streams API-er og eliminere forskjeller i oppførselen til de grunnleggende delene av Node.js. For eksempel er oppførselen til http.OutgoingMessage nærmere stream.Writable, og net.Socket nærmere stream.Duplex. AutoDestroy-innstillingen settes som standard til «true», noe som innebærer at «_destroy» kalles etter at den er fullført.
  • Eksperimentell støtte for API-er WASI (WebAssembly System Interface), som gir programmeringsgrensesnitt for direkte interaksjon med operativsystemet (POSIX API for filarbeid, sokler osv.).
  • Kravene til minimumsversioner kompilatorer og plattformer: macOS 10.13 (High Sierra), GCC 6, Windows nyere enn 7/2008R2.

Husk at Node.js-plattformen kan brukes både til serverdrift av webapplikasjoner og til å lage vanlige klient- og servernettverksprogrammer. For å utvide funksjonaliteten til applikasjoner for Node.js er det utarbeidet en stor samling av moduler, der du kan finne moduler som implementerer servere og klienter for HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduler for integrasjon med ulike web-rammeverk, WebSocket- og Ajax-behandlere, tilkoblinger til databaser (MySQL, PostgreSQL, SQLite, MongoDB), malmotorer, CSS-motorer, implementeringer av kryptografiske algoritmer og autorisasjonssystemer (OAuth), XML-parsere.

For å sikre behandling av et stort antall parallelle forespørsel, benytter Node.js en asynkron modell for å kjøre kode, basert på hendelsesbehandling i ikke-blokkerende modus og definering av callback-håndterere. Metoder som epoll, kqueue, /dev/poll og select støttes som måter å multiplexe forbindelser. Biblioteket libuv, som er et lag over libev i Unix-systemer og IOCP i Windows. For å opprette en tråd-pool brukes biblioteket libeio, for å utføre DNS-forespørsel i ikke-blokkerende modus, er c-aresintegrert. Alle systemanrop som forårsaker blokkering, utføres inne i tråd-poolen og sender deretter resultatet av arbeidet tilbake gjennom et anonymt rør (pipe), som signalbehandlere gjør. Utførelsen av JavaScript-kode skjer ved å bruke motoren utviklet av Google V8 (Microsoft utvikler også en versjon av Node.js med Chakra-Core-motoren).

I sin essens ligner Node.js på rammeverkene Perl AnyEvent, Ruby Event Machine, Python Twisted og implementering. Hendelser i Tcl, men hendelsessløyfen (event loop) i Node.js er skjult for utvikleren og minner om behandlingen av hendelser i en nettsøknad som kjører i nettleseren. Når du skriver applikasjoner for Node.js, må du ta hensyn til spesifikasjonene for hendelsesorientert programmering, for eksempel i stedet for å kjøre «var result = db.query(«select..»);» og vente på at det skal fullføres før du behandler resultatene, bruker Node.js prinsippet om asynkron utførelse, det vil si at koden transformeres til «db.query(«select..», function (result) {behandling av resultat});», hvor kontrollen umiddelbart går videre til neste kode, og resultatet av forespørselen vil bli behandlet etter hvert som dataene kommer inn.

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster