Server-side JavaSkript platfoarm Node.js 18.0 beskikber

Node.js 18.0 waard frijlitten, in platfoarm foar it útfieren fan netwurkapplikaasjes yn JavaSkript. Node.js 18.0 wurdt klassifisearre as in lange-termyn stipe tûke, mar dizze status wurdt tawiisd allinnich yn oktober, nei stabilisaasje. Node.js 18.x sil wurde stipe oant april 2025. Ûnderhâld fan de foarige LTS branch fan Node.js 16.x sil duorje oant april 2024, en it jier foar de lêste LTS branch 14.x oant april 2023. De 12.x LTS-tûke sil op 30 april wurde staakt, en de Node.js 17.x-staging-tûke sil op 1 juny stopset wurde.

Main ferbetterings:

  • De V8-motor is bywurke nei ferzje 10.1, dy't brûkt wurdt yn Chromium 101. Yn ferliking mei de 17.9.0-útjefte fan Node.js is d'r no stipe foar funksjes lykas de findLast- en findLastIndex-metoaden foar it finen fan eleminten relatyf oan 'e ein fan in array, en de funksje Intl.supportedValuesOf. Ferbettere Intl.Locale API. De inisjalisaasje fan klassefjilden en partikuliere metoaden is fersneld.
  • De eksperimintele fetch () API is standert ynskeakele, ûntwurpen foar it laden fan boarnen oer it netwurk. De ymplemintaasje is basearre op koade fan 'e HTTP/1.1 undici-kliïnt en is sa ticht mooglik by de ferlykbere API dy't yn browsers oanbean wurdt. Dit omfettet stipe foar de FormData-, Headers-, Request- en Response-ynterfaces foar it manipulearjen fan HTTP-fersyk en antwurdkoppen. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json(); console.log(data); }
  • In eksperimintele ymplemintaasje fan 'e Web Streams API is tafoege, dy't tagong jout ta gegevensstreamen ûntfongen oer it netwurk. De API makket it mooglik om jo eigen handlers ta te foegjen om te wurkjen mei gegevens as ynformaasje oer it netwurk komt, sûnder te wachtsjen op it folsleine bestân om te downloaden. Objekten no beskikber yn Node.js omfetsje ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream en DecompressionStream.
  • De Blob API is ferpleatst nei stabyl, wêrtroch jo ûnferoarlike rauwe gegevens kinne ynkapselje foar feilich gebrûk yn ferskate wurkthreads.
  • De BroadcastChannel API is stabyl makke, wêrtroch jo de útwikseling fan berjochten yn asynchrone modus kinne organisearje yn it formaat "ien stjoerder - in protte ûntfangers".
  • Eksperimintele module knooppunt tafoege: test foar it meitsjen en útfieren fan testen yn JavaScript dy't resultaten werombringe yn TAP (Test Anything Protocol) opmaak.
  • De generaasje fan klearmakke gearkomsten foar Red Hat Enterprise Linux (RHEL) 8 en oare distribúsjes basearre op Glibc 2.28+, ynklusyf Debian 10 en Ubuntu 20.04, lykas foar macOS 10.15+ wurdt levere. Troch problemen mei de V8-motorbou is de skepping fan 32-bit builds foar Windows tydlik stoppe.
  • In eksperimintele opsje levere om in útfierber Node.js te bouwen mei brûker-selekteare komponinten inisjalisearre by it opstarten. Om de startkomponinten te definiearjen, is de opsje "--node-snapshot-main" tafoege oan it konfiguraasjebouskript, bygelyks "./configure -node-snapshot-main=marked.js; namme node"

It platfoarm Node.js kin brûkt wurde sawol foar serverûnderhâld fan webapplikaasjes as foar it meitsjen fan reguliere client- en servernetwurkprogramma's. Om de funksjonaliteit fan applikaasjes foar Node.js út te wreidzjen, is in grutte samling modules taret, wêryn jo modules kinne fine mei de ymplemintaasje fan HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3-tsjinners en kliïnten, modules foar yntegraasje mei ferskate webkaders, WebSocket- en Ajax-hannelers, DBMS-ferbiningen (MySQL, PostgreSQL, SQLite, MongoDB), sjabloanmotoren, CSS-motoren, ymplemintaasjes fan krypto-algoritmen en autorisaasjesystemen (OAuth), XML-parsers.

Om de ferwurking fan in grut oantal parallelle fersiken te garandearjen, brûkt Node.js in asynchronous koade-útfiermodel basearre op net-blokkearjende evenemint-ôfhanneling en de definysje fan callback-hannelers. Stipe metoaden foar multiplexing ferbinings binne epoll, kqueue, /dev/poll, en selektearje. Foar ferbiningsmultiplexing wurdt de libuv-bibleteek brûkt, dat is in tafoeging foar libev op Unix-systemen en IOCP op Windows. De libeio-bibleteek wurdt brûkt om in threadpool te meitsjen, c-ares is yntegreare om DNS-fragen út te fieren yn net-blokkearjende modus. Alle systeemoproppen dy't blokkearje feroarsaakje, wurde útfierd yn 'e threadpool en dan, lykas sinjaalhannelers, it resultaat fan har wurk werom fia in net neamde piip (pipe). De útfiering fan JavaScript-koade wurdt levere troch it brûken fan de V8-motor ûntwikkele troch Google (dêrneist ûntwikkelet Microsoft in ferzje fan Node.js mei de Chakra-Core-motor).

Yn har kearn is Node.js fergelykber mei de Perl AnyEvent, Ruby Event Machine, Python Twisted-frameworks, en de ymplemintaasje fan Tcl-evenemint, mar de barren-loop yn Node.js is ferburgen foar de ûntwikkelder en liket op evenemintehanneling yn in webapplikaasje dy't rint yn browser. By it skriuwen fan applikaasjes foar node.js, moatte jo beskôgje de spesifiken fan evenemint-oandreaune programmearring, bygelyks, ynstee fan in dwaan "var result = db.query ("selektearje ..");" mei wachtsjen op foltôging fan wurk en folgjende ferwurking fan resultaten, Node.js brûkt it prinsipe fan asynchronous útfiering, d.w.s. de koade wurdt omfoarme ta "db.query ("selektearje ..", funksje (resultaat) {resultaat ferwurking});", dêr't kontrôle sil daliks trochjaan oan fierdere koade, en de query resultaat wurdt ferwurke as gegevens oankomme.

Boarne: opennet.ru

Add a comment