Zerbitzariaren aldeko JavaScript plataforma Node.js 19.0 eskuragarri

Node.js 19.0 kaleratu zen, JavaScript-en sareko aplikazioak exekutatzeko plataforma. Node.js 19 ohiko laguntza-adarra da, eguneratzeak eskuragarri dituena 2023ko ekainera arte. Datozen egunetan, Node.js 18 adarraren egonkortzea amaituko da, LTS egoera jasoko duena eta 2025eko apirilera arte onartzen duena. Node.js 16.0-ren aurreko LTS adarraren mantentze-lanak 2023ko irailera arte iraungo du, eta azken LTS 14.0 adarraren aurreko urteko 2023ko apirilera arte.

Hobekuntza nagusiak:

  • V8 motorra 10.7 bertsiora eguneratu da, Chromium 107-n erabiltzen dena. Node.js 18 adarrarekin alderatuta motorraren aldaketen artean, Intl.NumberFormat APIaren hirugarren bertsioaren inplementazioa nabarmentzen da, funtzio berriak gehitzen dituen formatRange. (), formatRangeToParts() eta selectRange(), multzoen multzokatzea, biribiltzeko eta doitasuna ezartzeko aukera berriak, kateak zenbaki hamartar gisa interpretatzeko gaitasuna. Sartutako llhttp 8.1.0 eta npm 8.19.2 menpekotasunak ere eguneratu dira.
  • "Node -watch" komando esperimental bat proposatu da, inportatutako fitxategia aldatzen denean prozesua berrabiaraziko dela ziurtatzen duen zaintza modu bat ezartzen duena (adibidez, "node -watch index.js" exekutatzen bada, prozesua automatikoki berrabiaraziko da). index.js aldatzen denean).
  • Irteerako HTTP/HTTPS konexio guztietarako, HTTP 1.1 Keep-Alive mekanismoaren euskarria gaituta dago, eta horrek konexioa irekita uzten du denbora jakin batean konexio berean hainbat HTTP eskaera prozesatzeko. Keep-Alive-k errendimendua eta errendimendua hobetzea espero da. Lehenespenez, konexioa irekitzeko denbora-muga 5 segundotan ezartzen da. Zerbitzariaren erantzunetan Keep-Alive HTTP goiburua analizatzeko laguntza gehitu zaio HTTP bezeroaren inplementazioari, eta Keep-Alive erabiliz bezero inaktiboen deskonexio automatikoa gehitu zaio Node.js HTTP zerbitzariaren inplementazioari.
  • WebCrypto APIa kategoria egonkorrera transferitu da, Ed25519, Ed448, X25519 eta X448 algoritmoak erabiltzen dituzten funtzioak izan ezik. WebCrypto modulura sartzeko orain globalThis.crypto edo require('node:crypto').webcrypto erabil dezakezu.
  • DTrace, SystemTap eta ETW (Event Tracing for Windows) trazatzeko tresnen euskarria kendu egin da, eta horien mantentze-lanak desegokitzat jo ziren laguntza-plan egokirik ezean eguneratuta mantentzearen konplexutasunagatik.

Node.js plataforma web aplikazioen zerbitzariaren mantentze-lanetarako eta bezero eta zerbitzarien sareko programa arruntak sortzeko erabil daiteke. Node.js aplikazioen funtzionaltasuna zabaltzeko, modulu bilduma handi bat prestatu da, eta bertan HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 zerbitzariak eta bezeroak inplementatzen dituzten moduluak aurki ditzakezu, integratzeko moduluak. hainbat web-esparrurekin, WebSocket eta Ajax kudeatzaileekin, DBMS konektoreekin (MySQL, PostgreSQL, SQLite, MongoDB), txantiloi-motorrekin, CSS motorrekin, kripto-algoritmoen eta baimen-sistemen inplementazioekin (OAuth), XML analizatzaileekin.

Eskaera paralelo ugariren prozesamendua ziurtatzeko, Node.js-ek kode asinkronoaren exekuzio-eredu bat erabiltzen du blokeatzen ez den gertaeren kudeaketan eta dei-itzuliaren kudeatzaileen definizioan oinarrituta. Konexioak multiplexatzeko onartzen diren metodoak epoll, kqueue, /dev/poll eta select dira. Konexio-multiplexatzeko, libuv liburutegia erabiltzen da, hau da, libev-en gehigarria Unix sistemetan eta IOCP Windows-en. Libeio liburutegia hari multzo bat sortzeko erabiltzen da, eta c-ares integratuta dago DNS kontsultak blokeatu gabeko moduan egiteko. Blokeoa eragiten duten sistema-dei guztiak hari multzoaren barruan exekutatzen dira eta, ondoren, seinale-kudeatzaileak bezala, beren lanaren emaitza izenik gabeko kanalizazio baten bidez (hodia) transferitzen dute. JavaScript kodearen exekuzioa Googlek garatutako V8 motorra erabiliz ematen da (gainera, Microsoft Node.js bertsio bat garatzen ari da Chakra-Core motorrekin).

Funtsean, Node.js Perl AnyEvent, Ruby Event Machine, Python Twisted esparruen eta Tcl gertaeren inplementazioaren antzekoa da, baina Node.js-en gertaeren begizta garatzaileari ezkutatuta dago eta exekutatzen ari den web aplikazio batean gertaeren kudeaketaren antza du. nabigatzailean. Node.js aplikazioak idaztean, gertaerak gidatutako programazioaren berezitasunak kontuan hartu behar dituzu, adibidez, "var result = db.query("select..");" egin beharrean. lana amaitu eta ondorengo emaitzak prozesatzeko zain egonda, Node.js-ek exekuzio asinkronoaren printzipioa erabiltzen du, hau da. kodea "db.query("hautatu..", funtzioa (emaitza) {emaitza prozesatzea});, eta bertan kontrola berehala pasako da beste kode batera, eta kontsultaren emaitza datuak iristen diren heinean prozesatu egingo da.

Iturria: opennet.ru

Gehitu iruzkin berria