Node.js 25.0.0 har slÀppts, en plattform för att köra nÀtverksapplikationer i JavaScript. Node.js 25.0 tillhör de intermediÀra versionerna som kommer att underhÄllas i 7 mÄnader (frÄn och med juni 2026). Inom kort kommer stabiliseringen av Node.js 24 att slutföras, vilken i slutet av oktober fÄr LTS-status och kommer att stödjas fram till april 2028. Stödet för tidigare LTS-versioner Node.js 22.x och 20.x kommer att pÄgÄ till april 2027 och 2026 respektive.
Huvudsakliga förbÀttringar:
- Motor V8 har uppdaterats till version 14.1, som anvÀnds i Chromium 141. Bland förbÀttringarna jÀmfört med den tidigare Node.js-versionen Àr en betydande ökning av prestandan för metoden JSON.stringify, optimering av WebAssembly och JIT, samt implementering av metoder för konvertering mellan Uint8Array och data i base64- eller hexadecimalt format.
- I Permission Model, som möjliggör begrĂ€nsningar av Ă„tkomst till specifika resurser under körning, har alternativet "âallow-net" lagts till för att sĂ€kerstĂ€lla nĂ€tverksĂ„tkomst (om inte alternativet "âallow-net" anges, kommer körning av Node.js i lĂ€get "âpermission" att ge ett felmeddelande ERR_ACCESS_DENIED vid försök till nĂ€tverksoperationer).
- Aktiverat som standard kompatibel med webblÀsare Web Storage API, avsett för permanent (class localStorage) eller temporÀr (class sessionStorage) lagring av data i nyckel/vÀrde-format. Den experimentella utvecklingsbeteckningen för Web Storage API har tagits bort.
- Klassen ErrorEvent, som tillhandahÄller ett webblÀsarkompatibelt grÀnssnitt för att hantera hÀndelser med information om fel, har lagts till kategorin globalt tillgÀngliga (kan anvÀndas utan explicit import).
- För WebAssembly har API JSPI (JavaScript Promise Integration) aktiverats, vilket möjliggör Ätkomst till asynkrona Web API frÄn sekventiellt körd kod som kompilerats till WebAssembly.
- Alternativet "NODE_COMPILE_CACHE_RELATIVE_PATH" har lagts till för portabel hantering av cache för kompilerade objekt. I detta lÀge berÀknas hashvÀrden för att identifiera objekt med relativa filvÀgar, vilket gör att innehÄllet i kodkatalogen kan flyttas och integreras med cachen.
- Möjlighet till CPU-belastningsprofilering har lagts till.
- Paketförvaltaren NPM har uppdaterats till version 11.6.2.
- Stöd för Python 3.14 har lagts till.
- De minimi stödda versionerna som anges Àr Clang 19 och Xcode 16.4.
- Stödet för objektet SlowBuffer har upphört, som tidigare förklarats förÄldrat pÄ grund av potentiella sÀkerhetsproblem. AnvÀnd istÀllet metoden Buffer.allocUnsafeSlow().
Node.js-plattformen kan anvÀndas bÄde för serverhantering av webapplikationer och för att skapa vanliga klient- och servernÀtverksprogram. För att utöka funktionaliteten för Node.js-applikationer har en stor samling moduler tagits fram, dÀr man kan finna moduler med implementeringar. servrar och kunder för HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduler för integration med olika webbramverk, WebSocket- och Ajax-hanterare, anslutare till databaser (MySQL, PostgreSQL, SQLite, MongoDB), mallmotorer, CSS-motorer, implementationer av kryptalgoritmer och auktorisationssystem (OAuth), XML-parserare.
För att hantera ett stort antal parallella förfrÄgningar anvÀnder Node.js en asynkron kodexekveringsmodell baserad pÄ hÀndelsebehandling i icke-blockerande lÀge och definiering av callback-hanterare. Metoder som epoll, kqueue, /dev/poll och select stöds som sÀtt att multiplexera anslutningar. 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, och för att utföra DNS-förfrÄgningar i icke-blockerande lÀge Àr c-ares integrerat. Alla systemanrop som orsakar blockering utförs inom trÄdpoolen och överför sedan, liksom signalhanterare, resultaten av sitt arbete tillbaka via en namnlös kanal (pipe).
Utförandet av JavaScript-kod sÀkerstÀlls genom anvÀndning av V8-motorn utvecklad av Google (dessutom utvecklar Microsoft en variant av Node.js med Chakra-Core-motorn). I sin kÀrna liknar Node.js ramverken Perl AnyEvent, Ruby Event Machine, Python Twisted och hÀndelseimplementeringen i Tcl, men hÀndelsebehandlingsloopen i Node.js Àr dold för utvecklaren och pÄminner om hÀndelsehantering i en webapplikation som körs i en webblÀsare.
KĂ€lla: opennet.ru
