utgivning , plattformar för att köra nÀtverksapplikationer i JavaScript. Samtidigt har stabiliseringen av den tidigare versionen Node.js 12.x slutförts, som nu har flyttats till kategorin LTS-utgÄvor med uppdateringar som slÀpps under 4 Är. Stödet för den tidigare LTS-versionen Node.js 10.0 kommer att pÄgÄ fram till april 2021, och stödet för den föregÄende LTS-versionen 8.0 kommer att pÄgÄ till januari 2020.
Huvud :
- V8-motorn har uppdaterats till version , dÀr nya metoder för prestandaoptimering har implementerats, objekt-destructuring har förbÀttrats, minnesanvÀndningen har minskats och tiden för att förbereda WebAssembly har kortats;
- Internationell och Unicode-stöd Àr nu helt aktiverat baserat pÄ biblioteken (International Components for Unicode), vilket gör det möjligt för utvecklare att skriva kod som arbete med olika sprÄk och lokaliseringar. Modulen full-icu Àr nu installerad som standard;
- API:n för , gör det möjligt att skapa multitrÄdade hÀndelseloopar. Implementeringen baseras pÄ modulen worker_threads, som tillÄter att JavaScript-kod körs i flera parallella trÄdar. Stabilt stöd för API:n Workers Threads har ocksÄ bakportats till LTS-versionen Node.js 12.x;
- Krav pÄ plattformar har höjts. För byggandet krÀvs nu Ätminstone macOS 10.11 (Xcode 10 krÀvs), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
- Stödet för Python 3 har förbÀttrats. Om bÄde Python 2 och Python 3 finns i systemet, anvÀnds fortfarande Python 2, men det har lagts till en möjlighet att bygga om systemet med endast Python 3;
- Den gamla implementeringen av HTTP-parsern (â--http-parser=legacyâ) har tagits bort. Anrop och egenskaper som FSWatcher.prototype.start(), ChildProcess._channel, metoden open() i objekten ReadStream och WriteStream, request.connection, response.connection, module.createRequireFromPath() har tagits bort eller klassificerats som förĂ„ldrade;
- Följande uppdateringen 13.0.1, dÀr flera buggar ÄtgÀrdades omgÄende. Bland annat ÄtgÀrdades ett problem med aviseringen om att en obehörig version av npm 6.12.0 anvÀndes.
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
