Zerbitzariaren aldeko JavaScript Node.js 14.0 bertsioa

ospatu askatu Node.js 14.0,JavaScript-en sareko aplikazioak exekutatzeko plataformak. Node.js 14.0 epe luzerako laguntza-adarra da, baina egoera hori urrian bakarrik esleituko da, egonkortu ondoren. Node.js 14.0 onartuko da gauzatu 2023ko apirilera arte. Node.js 12.0-ren aurreko LTS adarraren mantentze-lanak 2022ko apirilera arte iraungo du, eta azken aurreko urteko LTS 10.0 adarra arte 2021eko apirilera arte. 13.x eszenatze-adarraren laguntza aurtengo ekainean amaituko da.

Nagusia hobekuntzak:

  • Egonkortu egin da edo gertaera batzuk gertatzen direnean sortzeko gaitasuna diagnostiko txostenak, arazoak diagnostikatzen laguntzen duten gertaerak bistaratzen dituztenak, hala nola hutsegiteen, errendimenduaren degradazioa, memoria ihesak, CPU karga handia, ustekabeko erroreen irteera, etab.
  • API esperimentalaren euskarria gehitu da Biltegiratze lokal asinkronizatua AsyncLocalStorage klasearen inplementazioarekin, egoera asinkronoa sortzeko erabil daitekeen itzulera deietan eta promesetan oinarritutako kudeatzaileekin. AsyncLocalStorage-k web-eskaera bat prozesatzen ari den bitartean datuak gordetzeko aukera ematen du, beste hizkuntza batzuetan hari lokaleko biltegiratzea gogorarazten duena.
  • Kargatzean eginbide esperimentalari buruzko abisu-mezua kendu da moduluak ECMAScript 6 konektatu eta esportatu inportazio eta esportazio adierazpenak erabiliz. Aldi berean, ESM moduluen ezarpena bera esperimentala izaten jarraitzen du.
  • V8 motorra bertsiora eguneratu da 8.1 (1, 2, 3), errendimenduaren optimizazio eta eginbide berriak barne hartzen dituena, hala nola "???" kateatze-operadore logiko berria. (eskuineko eragiketa itzultzen du ezkerreko eragiketa NULL edo definitu gabea bada, eta alderantziz), "?." eragilea propietate edo deien kate osoaren behin-behineko egiaztapenerako (adibidez, β€œdb?.user?.name?.length” aurretiazko egiaztapenik gabe), Intl.DisplayName metodoa lokalizatutako izenak lortzeko, etab.
  • Streams APIaren berrikuspena egin zen, Streams APIen koherentzia hobetzera eta Node.js-en oinarrizko zatien portaeran dauden desberdintasunak ezabatzera zuzenduta. Adibidez, http.OutgoingMessage-ren portaera korrontetik hurbil dago.Idatzigarria, eta net.Socket korrontearen antzekoa da.Duplex. AutoDestroy aukera lehenespenez "egia" gisa ezartzen da, hau da, amaitzean "_destroy" deitzen dela esan nahi du.
  • API esperimentalaren euskarria gehitu da WASI (WebAssembly System Interfazea), sistema eragilearekin zuzeneko interakziorako software interfazeak eskainiz (fitxategiekin, socketekin, etab. lantzeko POSIX APIa).
  • Eskakizunak areagotzea gutxieneko bertsioak konpiladoreak eta plataformak: macOS 10.13 (High Sierra), GCC 6, Windows 7/2008R2 berriagoa.

Gogora dezagun Node.js plataforma web aplikazioen zerbitzariaren laguntzarako zein bezero eta zerbitzari sareko programa arruntak sortzeko erabil daitekeela. Node.js aplikazioen funtzionaltasuna zabaltzeko, kopuru handi bat moduluen bilduma, zeinetan HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 zerbitzari eta bezeroen ezarpenarekin moduluak aurki ditzakezu, hainbat web esparrurekin integratzeko moduluak, WebSocket eta Ajax kudeatzaileak, DBMSrako konektoreak (MySQL, PostgreSQL, SQLite). , MongoDB ), txantiloi-motorrak, CSS motorrak, algoritmo kriptografikoen eta baimen-sistemen inplementazioak (OAuth), XML analizatzaileak.

Eskaera paralelo ugari kudeatzeko, Node.js-ek kode asinkronoaren exekuzio-eredu bat erabiltzen du blokeatzen ez den gertaeren prozesamenduan eta dei-itzuliaren kudeatzaileak definitzean oinarrituta. Konexioak multiplexatzeko onartzen diren metodoak honako hauek dira: epoll, kqueue, /dev/poll eta select. Liburutegia konexioak multiplexatzeko erabiltzen da libuv, gainegitura bat dena libev Unix sistemetan eta IOCP bidez Windows-en. Liburutegi bat hari multzo bat sortzeko erabiltzen da libeio, blokeorik gabeko moduan DNS kontsultak egiteko integratuta dago c-areak. Blokeoa eragiten duten sistema-dei guztiak hari multzoan exekutatzen dira eta gero, seinale-kudeatzaileek bezala, beren lanaren emaitza izenik gabeko kanalizazio batetik itzultzen dute. JavaScript kodearen exekuzioa Googlek garatutako motor baten bidez bermatzen da V8 (Gainera, Microsoft Node.js bertsio bat garatzen ari da Chakra-Core motorrekin).

Bere oinarrian, Node.js markoen antzekoa da Perl AnyEvent, Ruby Gertaeraren Makina, Python Twisted ΠΈ ezarpena gertaerak Tcl-n, baina Node.js-en gertaeren begizta garatzaileari ezkutatuta dago eta arakatzaile batean exekutatzen den web aplikazio bateko gertaeren kudeaketaren antza du. Node.js-erako aplikazioak idaztean, gertaeren araberako programazioaren berezitasunak kontuan hartu behar dira, adibidez, β€œvar result = db.query(β€œselect..”);” egin beharrean. lana amaitu eta ondorengo emaitzen prozesamenduaren zain egonda, Node.js-ek exekuzio asinkronoaren printzipioa erabiltzen du, hau da. kodea "db.query("hautatu..", funtzioa (emaitza) {emaitza prozesatzea}) bihurtzen da, eta bertan kontrola berehala pasako da kode gehiagora, eta kontsultaren emaitza datuak iristen diren heinean prozesatu egingo da. .

Iturria: opennet.ru

Gehitu iruzkin berria