Frigivelse af server-side JavaScript-platform Node.js 16.0

Node.js 16.0, en platform til at køre netværksapplikationer i JavaScript, er blevet udgivet. Node.js 16.0 er blevet tildelt den langsigtede supportgren, men denne status vil ikke blive tildelt før oktober, efter stabilisering. Support til Node.js 16.0 vil fortsætte indtil april 2023. Support til den tidligere LTS-gren, Node.js 14.0, vil fortsætte indtil april 2023, og til den tidligere LTS-gren, 12.0, indtil april 2022. Vedligeholdelsen af ​​10.0 LTS-grenen slutter om 10 dage.

Vigtigste forbedringer:

  • V8-motoren er blevet opdateret til version 9.0 (Node.js 15 brugte version 8.6), hvilket gør det muligt for Node.js 16 at implementere funktioner som "indices"-egenskaben til regulære udtryk (inklusive et array med start- og slutpositionerne for matchgrupper), Atomics.waitAsync-metoden (en asynkron version af Atomics.wait) og understøttelse af await-nøgleordet i topniveaumoduler. Funktionskald er nu hurtigere, når antallet af sendte argumenter ikke matcher de parametre, der er defineret i funktionen.
  • Timers Promises API'en er blevet stabiliseret, hvilket giver et alternativt sæt timerfunktioner, der returnerer Promise-objekter, hvilket eliminerer behovet for at bruge util.promisify(). import { setTimeout } from 'timers/promises'; async function run() { await setTimeout(5000); console.log('Hej Verden!'); } run();
  • En eksperimentel implementering af Web Crypto API'en er blevet tilføjet. Den er designet til at udføre grundlæggende kryptografiske operationer på webapplikationssiden, såsom manipulation af kryptografiske hashes, generering og verificering af digitale signaturer, kodning og afkodning af data ved hjælp af forskellige krypteringsmetoder og generering af kryptografisk sikre tilfældige tal. API'en inkluderer også funktioner til nøglegenerering og -administration.
  • N-API (API til tilføjelsesudvikling) er blevet opdateret til version 8.
  • Overgangen til den nye udgave af NPM-pakkehåndteringen 7.10 er fuldført.
  • Implementeringen af ​​AbortController-klassen, der er baseret på Web API'en AbortController og tillader annullering af signaler i udvalgte Promise-baserede API'er, er blevet stabiliseret.
  • Understøttelse af den tredje version af Source Map-formatet, der bruges til at knytte genererede, behandlede eller pakkede moduler til den originale kildekode, er blevet stabiliseret.
  • For at sikre kompatibilitet med ældre web-API'er er metoderne buffer.atob(data) og buffer.btoa(data) blevet tilføjet.
  • Der er begyndt at dannes builds til nye Apple-enheder udstyret med M1 ARM-chippen.
  • På platformen Linux Kravene til compilerversionen er blevet hævet til GCC 8.3.

Som en påmindelse kan Node.js-platformen bruges både til server-side support af webapplikationer og til at oprette standard klient- og server-side netværksprogrammer. For at udvide funktionaliteten af ​​Node.js-applikationer er der udarbejdet en stor samling af moduler, inklusive dem med implementeringer. servere og klienter til HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduler til integration med forskellige webframeworks, WebSocket- og Ajax-handlere, forbindelser til DBMS (MySQL, PostgreSQL, SQLite, MongoDB), skabelonmotorer, CSS-motorer, implementeringer af kryptografiske algoritmer og autorisationssystemer (OAuth), XML-parsere.

For at håndtere et stort antal parallelle anmodninger bruger Node.js en asynkron kodeeksekveringsmodel baseret på ikke-blokerende hændelsesbehandling og callback-handlere. Understøttede forbindelsesmultiplekseringsmetoder inkluderer epoll, kqueue, /dev/poll og select. Libuv-biblioteket, som er et supersæt af libev på Unix-systemer og IOCP på IOCP, bruges til forbindelsesmultipleksering. WindowsLibeio-biblioteket bruges til at oprette en trådpulje, og c-ares er integreret til at udføre DNS-forespørgsler i ikke-blokerende tilstand. Alle blokerende systemkald udføres i trådpuljen og returnerer derefter, ligesom signalhåndterere, deres resultater via en unavngiven pipe. JavaScript-udførelse leveres af Googles V8-motor (Microsoft udvikler også en variant af Node.js med Chakra-Core-motoren).

I sin kerne ligner Node.js Perl AnyEvent, Ruby Event Machine, Python Twisted-frameworks og Tcl-begivenhedsimplementeringen, men hændelsesløkken i Node.js er skjult for udvikleren og ligner hændelseshåndtering i en webapplikation, der kører i browser. Når du skriver applikationer til node.js, skal du tage højde for de særlige forhold ved begivenhedsdrevet programmering, for eksempel i stedet for at gøre "var result = db.query("select..");" med afventning af afslutning af arbejde og efterfølgende behandling af resultater, anvender Node.js princippet om asynkron eksekvering, dvs. koden transformeres til "db.query("vælg..", funktion (resultat) {resultatbehandling});", hvor kontrollen øjeblikkeligt overføres til yderligere kode, og forespørgselsresultatet vil blive behandlet efterhånden som data ankommer.

Det er også værd at bemærke, at Deno, et firma grundlagt af skaberen af ​​Node.js for at udvikle den næste generation af Deno-platformen, har modtaget 4.9 millioner dollars i finansiering. Denos formål ligner Node.js, men sigter mod at afhjælpe de konceptuelle mangler, der er forbundet med Node.js' arkitektur, og give brugerne et mere sikkert miljø. Det bemærkes, at Denos forretningsløsninger vil blive bygget på fuldt open source-produkter, og Open Core-modellen med dens separate betalte funktionalitet opfattes som uacceptabel for Deno-platformen.

Kilde: opennet.ru

Køb pålidelig hosting til websteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster