Utjefte fan JavaSkript-platfoarm oan serverside Node.js 14.0

barde frijlitte Node.js 14.0,platfoarms foar it útfieren fan netwurkapplikaasjes yn JavaScript. Node.js 14.0 is in lange-termyn stipe tûke, mar dizze status wurdt allinnich tawiisd yn oktober, nei stabilisaasje. Node.js 14.0 sil wurde stipe útfierd wurde oant april 2023. Ûnderhâld fan de foarige LTS branch fan Node.js 12.0 sil duorje oant april 2022, en it jier foar de lêste LTS branch 10.0 oant april 2021. Stipe foar de 13.x staging branch sil ein juny fan dit jier einigje.

haad ferbetterings:

  • De mooglikheid om te generearjen op 'e flecht of by it foarkommen fan bepaalde eveneminten is stabilisearre diagnostyske rapporten.
  • Eksperimintele API-stipe tafoege Async Local Storage mei de ymplemintaasje fan de klasse AsyncLocalStorage, dat kin brûkt wurde om te meitsjen asynchronous steat mei handlers basearre op callback calls en beloften. AsyncLocalStorage lit jo gegevens opslaan wylst in weboanfraach wurdt ferwurke, wat tinkt oan thread-lokale opslach yn oare talen.
  • Fuortsmite warskôgingsberjocht oer eksperimintele funksje by it laden modules ECMAScript 6 ferbûn en eksportearre mei ymportearjen en eksportearjen útspraken. Tagelyk bliuwt de ymplemintaasje fan ESM-modules sels eksperiminteel.
  • V8 motor fernijd nei ferzje 8.1 (1, 2, 3), dy't nije prestaasjesoptimalisaasjes en funksjes omfettet lykas de nije logyske gearhingoperator "??" (jout de rjochter operand werom as de linker operand NULL of net definiearre is, en oarsom), de operator "?." foar in ienmalige kontrôle fan 'e hiele keatling fan eigenskippen of oproppen (bygelyks "db?.brûker?.name?.length" sûnder foarriedige kontrôles), de metoade Intl.DisplayName foar it krijen fan pleatslike nammen, ensfh.
  • In revyzje fan 'e Streams API waard útfierd, rjochte op it ferbetterjen fan de konsistinsje fan' e Streams API's en it eliminearjen fan ferskillen yn it gedrach fan 'e basisdielen fan Node.js. Bygelyks, it gedrach fan http.OutgoingMessage is tichtby stream.Writable, en net.Socket is gelyk oan stream.Duplex. De autoDestroy-opsje is standert ynsteld op "wier", wat betsjut "_destroy" oproppe by foltôging.
  • Eksperimintele API-stipe tafoege WASI (WebAssembly System Interface), it leverjen fan software-ynterfaces foar direkte ynteraksje mei it bestjoeringssysteem (POSIX API foar wurkjen mei bestannen, sockets, ensfh.).
  • Ferhege easken foar minimale ferzjes kompilatoren en platfoarms: macOS 10.13 (High Sierra), GCC 6, Windows nijere 7/2008R2.

Lit ús ûnthâlde dat it Node.js-platfoarm kin brûkt wurde sawol foar serverside-stipe fan webapplikaasjes en foar it meitsjen fan gewoane client- en servernetwurkprogramma's. Om útwreidzje de funksjonaliteit fan applikaasjes foar Node.js, in grut oantal kolleksje fan modules, wêryn jo modules kinne fine mei de ymplemintaasje fan servers en kliïnten HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, modules foar yntegraasje mei ferskate webframes, WebSocket- en Ajax-hannelers, ferbiningen nei DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), sjabloanmotoren, CSS-motoren, ymplemintaasjes fan kryptografyske algoritmen en autorisaasjesystemen (OAuth), XML-parsers.

Foar in omgean grutte oantallen parallelle fersiken, Node.js brûkt in asynchronous koade útfiering model basearre op net-blokkearjende evenemint ferwurking en definiearje callback handlers. Stipe metoaden foar multiplexing ferbinings omfetsje epoll, kqueue, /dev/poll, en selektearje. De bibleteek wurdt brûkt om ferbiningen te multiplexen libuv, dat is in boppebou oer libev op Unix-systemen en oer IOCP op Windows. In bibleteek wurdt brûkt om in thread pool te meitsjen libeio, foar it útfieren fan DNS-fragen yn net-blokkearjende modus is yntegrearre c-oar. Alle systeemoproppen dy't blokkearje feroarsaakje, wurde útfierd binnen de threadpool en passe dan, lykas sinjaalbehannelers, it resultaat fan har wurk werom troch in net neamde piip. Utfiering fan JavaScript-koade wurdt garandearre troch it brûken fan in motor ûntwikkele troch Google V8 (Dêrneist ûntwikkelet Microsoft in ferzje fan Node.js mei de Chakra-Core-motor).

Yn har kearn is Node.js fergelykber mei kaders Perl AnyEvent, Ruby Event Machine, Python Twisted и útfiering eveneminten yn Tcl, mar de barrenslus yn Node.js is ferburgen foar de ûntwikkelder en liket op evenemintehanneling yn in webapplikaasje dy't rint yn in browser. By it skriuwen fan applikaasjes foar node.js, is it nedich om rekken te hâlden mei de spesifikaasjes fan evenemint-oandreaune programmearring, bygelyks, ynstee fan te dwaan "var result = db.query ("selektearje..");" mei wachtsjen op it foltôgjen fan wurk en de folgjende ferwurking fan 'e resultaten, brûkt Node.js it prinsipe fan asynchrone útfiering, d.w.s. de koade wurdt omfoarme ta "db.query ("selektearje ..", funksje (resultaat) {resultaat ferwurking});", wêryn kontrôle sil daliks trochjaan oan fierdere koade, en de query resultaat wurdt ferwurke as gegevens oankomme. .

Boarne: opennet.ru

Add a comment