utgivning , 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 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 :
- Möjligheten att generera diagnosrapporter , 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 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 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 (, , ), 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 (), som tillhandahÄller programmeringsgrÀnssnitt för direkt interaktion med operativsystemet (POSIX API för filhantering, sockets osv.).
- Krav har ökats pÄ kompilatorer och plattformar: macOS 10.13 (High Sierra), GCC 6, .
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 , 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 , som Àr ett lager över i Unix-system och över IOCP i Windows. För att skapa en trÄdpool anvÀnds biblioteket , för att utföra DNS-förfrÄgningar i icke-blockerande lÀge Àr integrerat. 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, (dessutom utvecklar Microsoft en version av Node.js med Chakra-Core-motorn).
I grunden liknar Node.js-ramverken , , och 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
