Versione JavaScript Node.js 14.0 da u latu di u servitore

hè accadutu liberazione Node.js 14.0,Piattaforme per l'esecuzione di applicazioni di rete in JavaScript. Node.js 14.0 hè un ramu di supportu à longu andà, ma questu statutu serà assignatu solu in uttrovi, dopu a stabilizazione. Node.js 14.0 serà supportatu esse realizatu finu à aprile 2023. U mantenimentu di u ramu LTS precedente di Node.js 12.0 durà finu à aprile 2022, è l'annu prima di l'ultimu ramu LTS 10.0 finu à aprile 2021. U supportu per u ramu di staging 13.x finisce in ghjugnu di questu annu.

menu migliurà:

  • A capacità di generà nantu à a mosca o annantu à l'occurrence di certi avvenimenti hè stata stabilizzata rapporti diagnostichi, chì mostra l'avvenimenti chì aiutanu à diagnosticà prublemi cum'è crashes, degradazione di u rendiment, perdite di memoria, carica di CPU pesante, output d'errore inespettatu, etc.
  • Aggiuntu un supportu API sperimentale Storage Local Async cù l'implementazione di a classa AsyncLocalStorage, chì pò esse usata per creà un statu asincronu cù handlers basatu in callback callback è promesse. AsyncLocalStorage vi permette di almacenà e dati mentre una dumanda web hè trattata, chì ricorda l'almacenamiento di filu-local in altre lingue.
  • Eliminatu u missaghju d'avvertimentu nantu à a funzione sperimentale durante a carica moduli ECMAScript 6 cunnessu è esportatu cù dichjarazioni d'importazione è di esportazione. À u listessu tempu, l'implementazione di i moduli ESM stessu resta sperimentale.
  • U mutore V8 aghjurnatu à a versione 8.1 (1, 2, 3), chì include novi ottimisazioni di rendiment è funzioni cum'è u novu operatore di concatenazione logica "???" (ritorna l'operandu ghjustu se l'operandu manca hè NULL o micca definitu, è vice versa), l'operatore "?." per una verificazione unica di tutta a catena di pruprietà o chjama (per esempiu, "db?.user?.name?.length" senza cuntrolli preliminari), u metudu Intl.DisplayName per ottene nomi localizzati, etc.
  • Una rivisione di l'API Streams hè stata realizata, destinata à migliurà a coherenza di l'API Streams è eliminà e differenze in u cumpurtamentu di e parti basi di Node.js. Per esempiu, u cumpurtamentu di http.OutgoingMessage hè vicinu à stream.Writable, è net.Socket hè simili à stream.Duplex. L'opzione autoDestroy hè impostata à "true" per difettu, chì significa chjamà "_destroy" à a fine.
  • Aggiuntu un supportu API sperimentale WASI (Interfaccia di u Sistema WebAssembly), furnisce interfacce di software per l'interazzione diretta cù u sistema operatore (API POSIX per travaglià cù schedari, sockets, etc.).
  • Esigenze aumentate per versioni minima compilatori è piattaforme: macOS 10.13 (High Sierra), GCC 6, Windows più recente 7/2008R2.

Ricurdemu chì a piattaforma Node.js pò esse usata sia per u supportu di u servitore di l'applicazioni Web sia per a creazione di u cliente ordinariu è i prugrammi di rete di u servitore. Per espansione a funziunalità di l'applicazioni per Node.js, un gran numaru di cullizzioni di moduli, in quale pudete truvà moduli cù l'implementazione di servitori è clienti HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduli per integrazione cù diversi frameworks web, gestori WebSocket è Ajax, connettori à DBMS (MySQL, PostgreSQL, SQLite). , MongoDB ), mudelli di mudelli, motori CSS, implementazioni di algoritmi criptografici è sistemi d'autorizazione (OAuth), parsers XML.

Per trattà un gran numaru di richieste parallele, Node.js usa un mudellu di esecuzione di codice asincronu basatu nantu à u processamentu di l'eventi senza bloccu è definisce i gestori di callback. I metudi supportati per e cunnessione multiplexing include epoll, kqueue, /dev/poll, è select. A biblioteca hè aduprata per multiplex cunnessione libuv, chì hè una superstruttura sopra libev in sistemi Unix è sopra IOCP in Windows. Una biblioteca hè aduprata per creà un pool di fili libeiu, per eseguisce e dumande DNS in modu senza bloccu hè integratu c-ares. Tutte e chjame di u sistema chì causanu u bloccu sò eseguite in u pool di fili è dopu, cum'è i gestori di signali, passanu u risultatu di u so travagliu per un tubu senza nome. L'esecuzione di codice JavaScript hè assicurata per l'usu di un mutore sviluppatu da Google V8 (In più, Microsoft sviluppa una versione di Node.js cù u mutore Chakra-Core).

À u so core, Node.js hè simile à i frameworks Perl AnyEvent, Ruby Event Machine, Python Twisted и implementazione avvenimenti in Tcl, ma u ciclu di l'avvenimentu in Node.js hè oculatu da u sviluppatore è s'assumiglia à a gestione di l'avvenimenti in una applicazione web chì esegue in un navigatore. Quandu scrivite l'applicazioni per node.js, hè necessariu di piglià in contu i specifichi di a prugrammazione guidata da l'avvenimentu, per esempiu, invece di fà "var result = db.query ("select..");" cù l'aspittà di a fine di u travagliu è u prucessu sussegwente di i risultati, Node.js usa u principiu di l'esekzione asincrona, i.e. u codice hè trasfurmatu in "db.query ("select..", funzione (result) {result processing});", in quale u cuntrollu passerà immediatamente à più codice, è u risultatu di a quistione serà processatu cum'è data ghjunghje. .

Source: opennet.ru

Add a comment