Utgivning av serverplattformen Node.js 14.0

HÀndelse genomförd utgivning Node.js 14.0, en plattform för att köra nÀtverksapplikationer i JavaScript. Node.js 14.0 tillhör linjer med lÄngsiktigt stöd, men denna status kommer att ges först i oktober efter stabilisering. Stödet för Node.js 14.0 kommer att genomföras till april 2023. UnderhÄllet för den tidigare LTS-linjen Node.js 12.0 kommer att pÄgÄ till april 2022, och den föregÄende LTS-linjen 10.0 till april 2021. Stödet för den interimistiska linjen 13.x avslutas i juni i Är.

Huvud förbÀttringar:

  • Möjligheten att generera diagnosrapporter har stabiliserats, dĂ€r hĂ€ndelser Ă„terspeglas som hjĂ€lper till att diagnostisera problem som krasch, prestandaförluster, minneslĂ€ckage, hög CPU-belastning, oförutsedda felutskrifter, osv.
  • Experimentellt stöd för API:et Async Local Storage har lagts till, med implementeringen av klassen AsyncLocalStorage, som kan anvĂ€ndas för att skapa asynkront tillstĂ„nd med callback-baserade hanterare och promise. AsyncLocalStorage gör det möjligt att lagra data under bearbetningen av webbförfrĂ„gningar, liknande trĂ„d-lokala lagringsutrymmen i andra sprĂ„k.
  • Varningen om experimentell funktion har tagits bort vid inladdning moduler ECMAScript 6 som importeras och exporteras med hjĂ€lp av uttryck för import och export. Observera att sjĂ€lva implementeringen av ESM-moduler fortfarande Ă€r experimentell.
  • V8-motorn har uppdaterats till version 8.1 (1, 2, 3), dĂ€r nya prestandaoptimeringar har införts och nyheter som den nya logiska operatorn förening "??" (returnerar det högra operandet om det vĂ€nstra operandet Ă€r NULL eller undefined, och vice versa), operatorn "?." för enstaka kontroller av hela egenskaps- eller anropskedjor (exempelvis "db?.user?.name?.length" utan föregĂ„ende kontroller), metoden Intl.DisplayName för att fĂ„ lokaliserade namn osv.
  • En översyn av API:et Streams har genomförts, inriktad pĂ„ att förbĂ€ttra konsistensen i API-grĂ€nssnitten för Streams och eliminera skillnader i beteendet hos grundlĂ€ggande delar av Node.js. Till exempel har beteendet hos http.OutgoingMessage nĂ€rmats stream.Writable, och net.Socket nĂ€rmats stream.Duplex. Alternativet autoDestroy Ă€r som standard instĂ€llt pĂ„ "true", vilket innebĂ€r att "_destroy" kommer att kallas efter slutförandet.
  • Experimentellt stöd för API:et WASI (WebAssembly System Interface), som tillhandahĂ„ller programmeringsgrĂ€nssnitt för direkt interaktion med operativsystemet (POSIX API för filhantering, sockets osv.).
  • Krav har ökats pĂ„ minimi versioner kompilatorer och plattformar: macOS 10.13 (High Sierra), GCC 6, Windows nyare Ă€n 7/2008R2.

Vi pÄminner om att Node.js-plattformen kan anvÀndas bÄde för serverhÄllning av webapplikationer och för att skapa vanliga klient- och servernÀtverksprogram. För att utöka funktionaliteten i applikationer för Node.js har en stor samling av moduler, som innehÄller moduler med implementationer av HTTP-, SMTP-, XMPP-, DNS-, FTP-, IMAP-, POP3-servrar och klienter, moduler för integration med olika webbramverk, WebSocket och Ajax hanterare, kopplingar till databaser (MySQL, PostgreSQL, SQLite, MongoDB), mallmotorer, CSS-motorer, implementationer av kryptografi-algoritmer och autentiseringssystem (OAuth), XML-parsers.

För att hantera ett stort antal parallella förfrÄgningar anvÀnder Node.js en asynkron kodkörningsmodell baserad pÄ hÀndelsehantering i icke-blockerande lÀge och definiering av callback-hanterare. Metoder som epoll, kqueue, /dev/poll och select stöds för anslutningsmultiplexering. För multiplexering av anslutningar anvÀnds biblioteket libuv, som Àr ett lager över libev i Unix-system och över IOCP i Windows. För att skapa en trÄdpool anvÀnds biblioteket libeio, för att utföra DNS-förfrÄgningar i icke-blockerande lÀge Àr c-aresintegrerat. Alla systemanrop som orsakar blockering utförs inom trÄdpoolen och skickar sedan, precis som signalhanterare, tillbaka resultatet av sitt arbete genom en namnlös kanal (pipe). Utförande av JavaScript-kod sker genom anvÀndning av den motor som utvecklats av Google, V8 (dessutom utvecklar Microsoft en version av Node.js med Chakra-Core-motorn).

I grunden liknar Node.js-ramverken Perl AnyEvent, Ruby Event Machine, Python Twisted och implementation HÀndelser i Tcl, men hÀndelseloopen (event loop) i Node.js Àr dölja för utvecklaren och liknar hÀndelsehantering i en webbapplikation som körs i webblÀsaren. Vid utveckling av applikationer för Node.js Àr det viktigt att beakta den hÀndelsestyrda programmeringens specifik, till exempel, istÀllet för att köra "var result = db.query('select..');" och vÀnta pÄ att den ska avslutas och bearbeta resultaten, anvÀnder Node.js principen för asynkron körning, dvs. koden omvandlas till "db.query('select..', function (result) {bearbetning av resultat});", dÀr kontrollen omedelbart gÄr till nÀsta kod, och resultatet av förfrÄgan kommer att bearbetas nÀr datan anlÀnder.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster