Utgivning av serverbaserade JavaScript-plattformen Node.js 13.0

TillgÀnglig utgivning Node.js 13.0, 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 förbÀttringar:

  • V8-motorn har uppdaterats till version 7.8, 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 ICU (International Components for Unicode), vilket gör det möjligt för utvecklare att skriva kod som stödjer arbete med olika sprĂ„k och lokaliseringar. Modulen full-icu Ă€r nu installerad som standard;
  • API:n för Workers Threads, möjliggö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 krĂ€vs Ă„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 slĂ€pptes 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 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