Zerbitzariaren aldeko JavaScript plataforma Node.js 18.0 eskuragarri

Node.js 18.0 kaleratu zen, JavaScript-en sareko aplikazioak exekutatzeko plataforma. Node.js 18.0 epe luzerako laguntza-adar gisa sailkatuta dago, baina egoera hori urrian bakarrik esleituko da, egonkortu ondoren. Node.js 18.x 2025eko apirilera arte egongo da onartzen. Node.js 16.x-en aurreko LTS adarraren mantentze-lanak 2024ko apirilera arte iraungo du, eta azken LTS 14.x adarraren aurreko urtean 2023ko apirilera arte. 12.x LTS adarra apirilaren 30ean eten egingo da, eta Node.js 17.x eszenatze adarra ekainaren 1ean.

Hobekuntza nagusiak:

  • V8 motorra Chromium 10.1-en erabiltzen den 101 bertsiora eguneratu da. Node.js-en 17.9.0 bertsioarekin alderatuta, gaur egun findLast eta findLastIndex metodoak bezalako funtzioetarako onartzen da elementuak aurkitzeko. array bat eta Intl.supportedValuesOf funtzioa. Intl.Locale API hobetua. Klase-eremuen eta metodo pribatuen hasierako prozesua azkartu egin da.
  • Fetch() API esperimentala gaituta dago lehenespenez, baliabideak sarean kargatzeko diseinatuta. Inplementazioa HTTP/1.1 undici bezeroaren kodean oinarritzen da eta arakatzaileek emandako antzeko APItik ahalik eta hurbilen dago. Honek FormData, Headers, Request eta Response interfazeetarako onartzen du HTTP eskaera eta erantzunen goiburuak manipulatzeko. const res = itxaron fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json (); console.log(datuak); }
  • Web Streams APIaren inplementazio esperimental bat gehitu da, sarean jasotako datu-korronteetarako sarbidea emanez. APIak zure kudeatzaileak gehitzea ahalbidetzen du datuekin lan egiteko, informazioa sarera iristen den heinean, fitxategi osoa deskargatu arte itxaron gabe. Node.js-en eskuragarri dauden objektuen artean daude ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream eta DecompressionStream.
  • Blob APIa egonkorra eraman da, eta datu gordina aldaezinak kapsula ditzakezu langile-hari ezberdinetan seguru erabiltzeko.
  • BroadcastChannel API egonkortu egin da, mezuen trukea modu asinkronoan antolatzeko aukera emanez "igorle bat - hartzaile asko" formatuan.
  • Modulu esperimentalaren nodoa: proba gehitu da TAP (Test Anything Protocol) formatuan emaitzak itzultzen dituzten JavaScript-en probak sortzeko eta exekutatzeko.
  • Red Hat Enterprise Linux (RHEL) 8rako eta Glibc 2.28+-en oinarritutako beste banaketa batzuetarako prest egindako muntaiak sortzea, Debian 10 eta Ubuntu 20.04 barne, baita macOS 10.15+erako ere. V8 motorra eraikitzeko arazoak direla eta, Windows-erako 32 biteko konpilazioen sorrera gelditu da aldi baterako.
  • Aukera esperimental bat eman du Node.js exekutagarri bat abiarazteko erabiltzaileak hautatutako osagaiekin abiarazteko. Hasierako osagaiak definitzeko, β€œ--node-snapshot-main” aukera gehitu da konfiguratu eraikitzeko script-ari, adibidez, β€œ./configure β€”node-snapshot-main=marked.js; izena nodoa"

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