Pjattaforma JavaScript fuq in-naħa tas-server Node.js 21.0 disponibbli

Ġie rilaxxat Node.js 21.0, pjattaforma għat-tħaddim ta' applikazzjonijiet tan-netwerk f'JavaScript. Il-fergħa Node.js 21.0 se tkun appoġġjata għal 6 xhur. Fil-jiem li ġejjin, se titlesta l-istabbilizzazzjoni tal-fergħa Node.js 20, li se tirċievi status LTS u se tkun appoġġjata sa April 2026. Il-manutenzjoni tal-fergħa LTS preċedenti ta 'Node.js 18.0 se ddum sa Settembru 2025, u s-sena ta' qabel l-aħħar fergħa LTS 16.0 sa April 2024.

Titjib ewlieni:

  • L-API Fetch ġiet iddikjarata stabbli, iddisinjata għat-tagħbija tar-riżorsi fuq in-netwerk u tissimplifika l-kitba tal-kodiċi JavaScript universali adattat biex jaħdem fuq is-server u n-naħat tal-klijent. L-implimentazzjoni hija bbażata fuq il-kodiċi mill-klijent HTTP/1.1 undici u hija kemm jista 'jkun qrib l-API simili pprovduta fil-browsers. L-API tinkludi l-metodu fetch() u oġġetti Headers. Talba u Rispons, li jirrappreżentaw l-intestaturi HTTP, it-talba u r-rispons. const res = stenna fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json (); console.log(data); }
  • L-appoġġ għall-API WebStreams, li jipprovdi aċċess għal flussi ta 'dejta riċevuti fuq in-netwerk, ġie stabbilizzat. L-API tagħmilha possibbli li żżid il-handlers tiegħek stess li jaħdmu bid-dejta hekk kif l-informazzjoni tasal min-netwerk, mingħajr ma tistenna li l-fajl kollu jitniżżlu. Oġġetti disponibbli f'Node.js jinkludu ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream, u DecompressionStream.
  • Miżjud implimentazzjoni sperimentali tal-klijent WebSocket, kompatibbli mal-browsers. Biex tippermetti l-appoġġ WebSocket, il-bandiera "--experimental-websocket" hija pprovduta.
  • Miżjud mod sperimentali għall-użu tal-implimentazzjoni default tal-moduli JavaScript ESM (Moduli ECMAScript, użati f'moduli għall-browsers) minflok CommonJS (speċifika għal Node.js). Il-bidla ma taffettwax moduli li l-format tagħhom huwa definit b'mod espliċitu permezz tal-qasam "tip" f'package.json, speċifikat permezz tal-bandiera "--input-type", jew hija ovvja minħabba l-estensjoni tal-fajl (.mjs għal ESM, .cjs). għal CommonJS). Madankollu, moduli li mhumiex definiti b'mod espliċitu bħala CommonJS (pereżempju, għandhom estensjoni ".js") se jiġu ttrattati bħala moduli ESM meta l-modalità l-ġdida tkun attivata. Biex jiġu attivati ​​settings ġodda tal-modulu, ġiet proposta l-bandiera "--experimental-default-type".
  • Il-magna V8 ġiet aġġornata għall-verżjoni 11.8, użata fil-Chromium 118, li issa tappoġġja l-metodu ArrayBuffer.prototype.transfer, il-kapaċità li tiġbor arrays (metodu groupBy) u struzzjonijiet WebAssembly għall-ipproċessar tal-kostanti (i32.add, i32.sub, i32.mul, i64 .add, i64.sub u i64.mul).
  • L-appoġġ għall-handler globalPreload twaqqaf, favur ir-reġistrazzjoni u l-inizjalizzazzjoni tas-sejħiet biex jiġu kkonfigurati moduli.
  • Għażla ta '"flush" ġiet miżjuda mal-funzjoni fs.writeFile biex iġiegħel id-data tiġi mlaħalħa fuq id-drajv wara kull operazzjoni ta' kitba.
  • Prestazzjoni mtejba tal-kodiċi relatat mal-parsing tal-URL, fetch API, streams, node:fs, u HTTP.
  • Miżjud oġġett navigatur globali. Pereżempju, biex tikseb dejta dwar in-numru ta' cores tas-CPU, tista' tuża l-proprjetà navigator.hardwareConcurrency.
  • Fil-parametru “—test”, ġie miżjud appoġġ għall-maskri glob għall-għażla tat-testijiet biex isiru (pereżempju, tista’ tispeċifika “—test **/*.test.js.”).
  • Il-maniġer tal-pakketti inklużi npm 10.2.0 u llhttp parser 9.1.2 ġew aġġornati.
  • L-appoġġ għal Visual Studio 2019 u verżjonijiet ta' macOS eqdem minn 11.0 twaqqaf.

Il-pjattaforma Node.js tista 'tintuża kemm għall-manutenzjoni tas-server tal-applikazzjonijiet tal-Web kif ukoll għall-ħolqien ta' programmi regolari tan-netwerk tal-klijenti u tas-server. Biex tespandi l-funzjonalità tal-applikazzjonijiet għal Node.js, ġiet ippreparata ġabra kbira ta 'moduli, li fiha tista' ssib moduli bl-implimentazzjoni ta 'HTTP, SMTP, XMPP, DNS, FTP, IMAP, servers u klijenti POP3, moduli għall-integrazzjoni b'diversi oqfsa tal-web, WebSocket u Ajax handlers, konnetturi DBMS (MySQL, PostgreSQL, SQLite, MongoDB), magni tat-templating, magni CSS, implimentazzjonijiet ta 'algoritmi kripto u sistemi ta' awtorizzazzjoni (OAuth), parsers XML.

Biex jiġi żgurat l-ipproċessar ta 'numru kbir ta' talbiet paralleli, Node.js juża mudell ta 'eżekuzzjoni ta' kodiċi asinkronu bbażat fuq l-immaniġġjar ta 'avvenimenti li ma jimblukkawx u d-definizzjoni ta' handlers ta 'callback. Metodi appoġġjati għall-konnessjonijiet multiplexing huma epoll, kqueue, /dev/poll, u select. Għall-multiplexing tal-konnessjoni, tintuża l-librerija libuv, li hija add-on għal libev fuq sistemi Unix u IOCP fuq Windows. Il-librerija libeio tintuża biex tinħoloq pool ta 'ħajt, u c-ares huwa integrat biex iwettaq mistoqsijiet DNS f'modalità mhux imblukkata. Is-sejħiet kollha tas-sistema li jikkawżaw l-imblukkar huma eżegwiti ġewwa l-pool tal-ħajt u mbagħad, bħal dawk li jimmaniġġjaw is-sinjali, jittrasferixxu r-riżultat tax-xogħol tagħhom lura permezz ta 'pajp (pajp) bla isem. L-eżekuzzjoni tal-kodiċi JavaScript hija pprovduta permezz tal-użu tal-magna V8 żviluppata minn Google (barra minn hekk, Microsoft qed tiżviluppa verżjoni ta 'Node.js bil-magna Chakra-Core).

Fil-qalba tiegħu, Node.js huwa simili għall-Perl AnyEvent, Ruby Event Machine, Python Twisted oqfsa, u l-implimentazzjoni tal-avvenimenti Tcl, iżda l-linja tal-avvenimenti f'Node.js hija moħbija mill-iżviluppatur u tixbaħ l-immaniġġjar tal-avvenimenti f'applikazzjoni tal-web li taħdem. fil-browser. Meta tikteb applikazzjonijiet għal node.js, trid tikkunsidra l-ispeċifiċitajiet tal-ipprogrammar mmexxi mill-avvenimenti, pereżempju, minflok ma tagħmel "var result = db.query ("select..");" bl-istennija għat-tlestija tax-xogħol u l-ipproċessar sussegwenti tar-riżultati, Node.js juża l-prinċipju ta 'eżekuzzjoni asinkronika, i.e. il-kodiċi jinbidel f'"db.query ("select..", funzjoni (riżultat) {proċessar tar-riżultat});", li fih il-kontroll jgħaddi istantanjament għal aktar kodiċi, u r-riżultat tal-mistoqsija jiġi pproċessat hekk kif tasal id-data.

Sors: opennet.ru

Żid kumment