Ang server-side nga JavaScript nga plataporma Node.js 18.0 anaa

Ang Node.js 18.0 gipagawas, usa ka plataporma alang sa pagpadagan sa mga aplikasyon sa network sa JavaScript. Ang Node.js 18.0 giklasipikar isip usa ka long-term nga sanga sa suporta, apan kini nga status ma-assign lamang sa Oktubre, human sa stabilization. Ang Node.js 18.x suportahan hangtod Abril 2025. Ang pagmentinar sa miaging LTS nga sanga sa Node.js 16.x molungtad hangtod Abril 2024, ug sa tuig sa wala pa ang miaging LTS nga sanga 14.x hangtod Abril 2023. Ang 12.x LTS nga sanga ihunong sa Abril 30, ug ang Node.js 17.x nga sanga sa staging ihunong sa Hunyo 1.

Panguna nga mga pag-uswag:

  • Ang V8 nga makina gi-update sa bersyon 10.1, nga gigamit sa Chromium 101. Kung itandi sa 17.9.0 nga pagpagawas sa Node.js, aduna nay suporta alang sa mga feature sama sa findLast ug findLastIndex nga mga pamaagi para sa pagpangita sa mga elemento nga may kalabutan sa katapusan sa usa ka laray, ug ang Intl.supportedValuesOf function. Gipauswag nga Intl.Locale API. Ang pagsugod sa mga natad sa klase ug pribadong mga pamaagi gipaspasan.
  • Ang experimental fetch() API gi-enable pinaagi sa default, gidisenyo alang sa loading resources sa network. Ang implementasyon gibase sa code gikan sa HTTP/1.1 undici nga kliyente ug ingon ka duol kutob sa mahimo sa susama nga API nga gihatag sa mga browser. Naglakip kini sa suporta alang sa FormData, Headers, Request ug Response interface alang sa pagmaniobra sa HTTP request ug response header. const res = maghulat sa pagkuha ('https://nodejs.org/api/documentation.json'); kung (res.ok) {const data = maghulat res.json(); console.log(data); }
  • Gidugang ang usa ka eksperimento nga pagpatuman sa Web Streams API, nga naghatag og access sa mga stream sa datos nga nadawat sa network. Ang API nagpaposible sa pagdugang sa imong kaugalingon nga mga tigdumala aron magtrabaho uban ang datos samtang ang impormasyon moabut sa network, nga dili maghulat nga ma-download ang tibuok file. Ang mga butang nga anaa na karon sa Node.js naglakip sa ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream, ug DecompressionStream.
  • Ang Blob API gibalhin ngadto sa stable, nga nagtugot kanimo sa pag-encapsulate sa dili mausab nga hilaw nga datos alang sa luwas nga paggamit sa lain-laing mga worker thread.
  • Ang BroadcastChannel API gihimo nga lig-on, nga nagtugot kanimo sa pag-organisar sa pagbayloay sa mga mensahe sa asynchronous mode sa "usa ka nagpadala - daghang mga nakadawat" nga format.
  • Gidugang ang experimental module node:test para sa paghimo ug pagpadagan sa mga pagsulay sa JavaScript nga nagbalik sa mga resulta sa TAP (Test Anything Protocol) nga format.
  • Ang henerasyon sa mga andam nga asembliya alang sa Red Hat Enterprise Linux (RHEL) 8 ug uban pang mga distribusyon base sa Glibc 2.28+, lakip ang Debian 10 ug Ubuntu 20.04, ingon man alang sa macOS 10.15+ gihatag. Tungod sa mga problema sa V8 engine build, ang paghimo sa 32-bit build para sa Windows temporaryo nga gihunong.
  • Naghatag usa ka opsyonal nga eksperimento sa paghimo og usa ka Node.js nga ma-executable nga adunay gipili nga mga sangkap nga gisugdan sa pagsugod. Sa paghubit sa sugod nga mga sangkap, ang “--node-snapshot-main” nga opsyon gidugang sa configure build script, pananglitan, “./configure —node-snapshot-main=marked.js; ngalan node"

Ang plataporma sa Node.js mahimong magamit alang sa pagmentinar sa server sa mga aplikasyon sa Web ug sa paghimo og regular nga kliyente ug mga programa sa network sa server. Aron mapalapad ang pag-andar sa mga aplikasyon alang sa Node.js, usa ka dako nga koleksyon sa mga module ang giandam, diin makit-an nimo ang mga module nga adunay pagpatuman sa HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 server ug kliyente, mga module alang sa panagsama. uban sa nagkalain-laing web frameworks, WebSocket ug Ajax handlers , DBMS connectors (MySQL, PostgreSQL, SQLite, MongoDB), templates engines, CSS engines, pagpatuman sa crypto algorithms ug authorization systems (OAuth), XML parsers.

Aron maseguro ang pagproseso sa daghang gidaghanon sa parallel requests, ang Node.js naggamit ug asynchronous code execution model base sa non-blocking event handling ug ang definition sa callback handler. Gisuportahan nga mga pamaagi alang sa multiplexing nga mga koneksyon mao ang epoll, kqueue, /dev/poll, ug pilia. Alang sa koneksyon multiplexing, ang libuv library gigamit, nga usa ka add-on alang sa libev sa Unix system ug IOCP sa Windows. Ang libeio library kay gigamit sa paghimo ug thread pool, ug ang c-ares gi-integrate para sa DNS query sa non-blocking mode. Ang tanan nga mga tawag sa sistema nga hinungdan sa pagbabag gihimo sa sulod sa thread pool ug dayon, sama sa mga tigdumala sa signal, ibalhin ang resulta sa ilang trabaho balik pinaagi sa usa ka wala nganli nga tubo (pipe). Ang pagpatuman sa JavaScript code gihatag pinaagi sa paggamit sa V8 nga makina nga gimugna sa Google (dugang pa, ang Microsoft nagpalambo sa usa ka bersyon sa Node.js nga adunay Chakra-Core nga makina).

Sa kinauyokan niini, ang Node.js susama sa Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks, ug ang Tcl event nga pagpatuman, apan ang event loop sa Node.js gitago gikan sa developer ug susama sa pagdumala sa panghitabo sa usa ka web application nga nagdagan. sa browser. Sa pagsulat sa mga aplikasyon alang sa node.js, kinahanglan nimong tagdon ang mga detalye sa programa nga gipalihok sa panghitabo, pananglitan, imbes nga buhaton ang "var result = db.query("select..");" uban sa paghulat sa pagkompleto sa trabaho ug sa sunod nga pagproseso sa mga resulta, ang Node.js naggamit sa prinsipyo sa asynchronous execution, i.e. ang code giusab ngadto sa "db.query("select..", function (resulta) {result processing});", diin ang kontrol moagi dayon sa dugang nga code, ug ang resulta sa pangutana maproseso sa pag-abot sa datos.

Source: opennet.ru

Idugang sa usa ka comment