Platforma JavaScript-a server-side Node.js 21.0 heye

Node.js 21.0 hate berdan, platformek ji bo xebitandina sepanên torê di JavaScript de. Şaxa Node.js 21.0 dê 6 mehan were piştgirî kirin. Di rojên pêş de, stabîlkirina şaxê Node.js 20 dê biqede, ku dê statûya LTS bistîne û dê heya Nîsana 2026-an were piştgirî kirin. Lênêrîna şaxa LTS ya berê ya Node.js 18.0 dê heya Îlona 2025-an, û sala berî şaxê LTS-ya paşîn 16.0 heya Nîsana 2024-an bidome.

Pêşveçûnên sereke:

  • Fetch API-ya bi îstîqrar hate ragihandin, ji bo barkirina çavkaniyan li ser torê û hêsankirina nivîsandina koda JavaScript-a gerdûnî ya ku ji bo xebitandina li aliyên server û xerîdar guncan e hatî sêwirandin. Bicîhkirin li ser bingeha koda ji muwekîlê HTTP/1.1 undici ye û bi qasî ku pêkan e nêzî API-ya wekhev a di gerokan de tê peyda kirin. API rêbaza fetch() û hêmanên Sernivîsê vedihewîne. Daxwaz û Bersiv, sernavên HTTP, daxwaz û bersiv temsîl dike. const res = await fetch('https://nodejs.org/api/documentation.json'); eger (res.ok) {const data = li benda res.json(); console.log(data); }
  • Piştgiriya ji bo WebStreams API-ya ku gihîştina herikên daneyên ku li ser torê têne wergirtin peyda dike, stabîl bûye. API mimkun dike ku hûn rêvebirên xwe yên ku bi daneyê re dixebitin lê zêde bikin dema ku agahdarî digihîje ser torê, bêyî ku li benda dakêşana tevahî pelê bisekinin. Tiştên ku di Node.js de hene ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream, û DecompressionStream hene.
  • Pêkanîna ceribandinê ya xerîdar WebSocket, ku bi gerokan re hevaheng e, zêde kir. Ji bo çalakkirina piştgiriya WebSocket, ala "--ceribandin-websocket" tê peyda kirin.
  • Li şûna CommonJS (taybetî Node.js) modulek ceribandinê zêde kir ji bo karanîna xwerû ya modulên JavaScript ESM (Modulên ECMAScript, ku di modulên gerokan de têne bikar anîn). Guhertin bandorê li modulên ku formata wan bi zelalî bi qada "type" ya pakêtê.json ve hatî destnîşan kirin, bi ala "--input-type" ve hatî destnîşan kirin, an jî ji ber dirêjkirina pelê diyar e (.mjs ji bo ESM, .cjs ji bo CommonJS). Lêbelê, modulên ku bi eşkere wekî CommonJS nehatine destnîşankirin (mînak, pêvekek ".js" heye) dema ku moda nû were çalak kirin dê wekî modulên ESM bêne hesibandin. Ji bo aktîvkirina mîhengên modulê yên nû, ala "--ceribandin-default-type" hate pêşniyar kirin.
  • Motora V8 bi guhertoya 11.8-ê hatî nûve kirin, ku di Chromium 118-ê de tê bikar anîn, ku naha şêwaza ArrayBuffer.prototype.transfer, şiyana komkirina rêzan (rêbaza grûpBy) û rêwerzên WebAssembly-ê ji bo hilberandina sabitan piştgirî dike (i32.add, i32.sub, i32.mul, i64 .add, i64.sub û i64.mul).
  • Piştgiriya ji bo handlerê globalPreload hate sekinandin, ji bo qeydkirin û destpêkirina bangên ji bo mîhengkirina modulan.
  • Vebijêrkek "flush" li fonksiyona fs.writeFile hate zêdekirin da ku piştî her karûbarê nivîsandinê dane zorê li ajokerê were rijandin.
  • Performansa çêtirîn ya kodê ya ku bi parsing URL-ê ve girêdayî ye, API-ê bistînin, çeman, node:fs, û HTTP-ê ve girêdayî ye.
  • Tişta navîgatorê gerdûnî lê zêde kir. Mînakî, ji bo bidestxistina daneyan di derheqê hejmara navikên CPU de, hûn dikarin taybetmendiya navigator.hardwareConcurrency bikar bînin.
  • Di pîvana "-test" de, piştgirî ji bo maskên globê ji bo hilbijartina ceribandinên ku têne xebitandin hatine zêdekirin (mînak, hûn dikarin "-test **/*.test.js." diyar bikin).
  • Rêvebirê pakêtê yê npm 10.2.0 û parsera llhttp 9.1.2 hatine nûve kirin.
  • Piştgiriya Visual Studio 2019 û guhertoyên macOS yên ji 11.0 kevntir hatine sekinandin.

Platforma Node.js hem ji bo domandina servera serîlêdanên Webê hem jî ji bo afirandina bernameyên torê yên xerîdar û serverê yên birêkûpêk dikare were bikar anîn. Ji bo berfirehkirina fonksiyona sepanan ji bo Node.js, berhevokek mezin a modulan hatiye amadekirin, ku tê de hûn dikarin modulên bi pêkanîna HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 pêşkêşker û xerîdar, modulên ji bo yekbûnê bibînin. bi çarçoveyên cûrbecûr yên malperê, hilgirên WebSocket û Ajax, girêdanên DBMS (MySQL, PostgreSQL, SQLite, MongoDB), motorên şablonê, motorên CSS, pêkanînên algorîtmayên krîpto û pergalên destûrnameyê (OAuth), parserên XML.

Ji bo ku pêvajokirina hejmareke mezin ji daxwazên paralel pêk were, Node.js modelek darvekirina kodê ya asynchronous li ser bingeha destwerdana bûyera ne-astengker û pênase rêvekerên vegerandina bangê bikar tîne. Rêbazên piştgirî ji bo girêdanên piralî epoll, kqueue, / dev/poll, û hilbijartî ne. Ji bo piralîkirina girêdanê, pirtûkxaneya libuv tê bikar anîn, ku ji bo libev li ser pergalên Unix û IOCP li ser Windows-ê pêvekek e. Pirtûkxaneya libeio ji bo afirandina hewzek tîrêjê tê bikar anîn, û c-ares ji bo pêkanîna pirsên DNS-ê di moda ne-astengkirinê de tête yek kirin. Hemî bangên pergalê yên ku dibin sedema astengkirinê di hundurê hewza tîrêjê de têne darve kirin û dûv re, mîna hilgirên sînyalê, encama xebata xwe bi boriyek (boriyek) nenavkirî veguhezînin. Bicîhkirina koda JavaScriptê bi karanîna motora V8 ya ku ji hêla Google ve hatî pêşve xistin ve tê peyda kirin (ji bilî vê, Microsoft guhertoyek Node.js bi motora Chakra-Core ve pêşve dike).

Di bingeha xwe de, Node.js dişibihe Perl AnyEvent, Ruby Event Machine, çarçoveyên Python Twisted, û pêkanîna bûyera Tcl-ê, lê lûleya bûyerê li Node.js ji pêşdebiran veşartî ye û dişibe birêvebirina bûyerê di serîlêdana tevnerê de ku dixebite. di gerokê de. Dema ku serîlêdanan ji bo node.js dinivîsin, hûn hewce ne ku hûn taybetmendiyên bernamesaziya bûyer-rêveberê binirxînin, mînakî, li şûna ku hûn "var result = db.query("hilbijêre..");" digel li benda qedandina kar û dûv re hilberandina encaman, Node.js prensîba darvekirina asynchronous bikar tîne, ango. kod tê guheztin "db.query("hilbijêre..", fonksiyona (encam) {pêvajoya encam});", ku tê de kontrol dê tavilê derbasî koda din bibe, û encama pirsê dê wekî daneyan were hilberandin.

Source: opennet.ru

Add a comment