Server-side JavaScript platform Node.js 21.0 ilipo

Node.js 21.0 inatulutsidwa, nsanja yogwiritsira ntchito maukonde mu JavaScript. Nthambi ya Node.js 21.0 idzathandizidwa kwa miyezi 6. M'masiku akubwerawa, kukhazikika kwa nthambi ya Node.js 20 kumalizidwa, yomwe idzalandira LTS ndipo idzathandizidwa mpaka April 2026. Kusamalira nthambi yam'mbuyo ya LTS ya Node.js 18.0 kudzakhala mpaka Seputembara 2025, ndipo chaka chatha LTS nthambi 16.0 mpaka Epulo 2024.

Kusintha kwakukulu:

  • The Fetch API yalengezedwa kuti ndi yokhazikika, yopangidwira kutsitsa zothandizira pa netiweki ndikuchepetsa kulemba kwa JavaScript code yoyenera kugwira ntchito pa seva ndi mbali za kasitomala. Kukhazikitsidwa kumakhazikitsidwa pa code yochokera kwa kasitomala wa HTTP/1.1 undici ndipo ili pafupi kwambiri ndi API yofananira yoperekedwa mu osatsegula. API imaphatikizapo njira yotengera () ndi zinthu za Header. Pempho ndi Kuyankha, kuyimira mitu ya HTTP, pempho ndi mayankho. const res = dikirani kutengera ('https://nodejs.org/api/documentation.json'); ngati (res.ok) {consst data = await res.json(); console.log(data); }
  • Thandizo la WebStreams API, lomwe limapereka mwayi wopeza mitsinje ya data yomwe imalandiridwa pa intaneti, yakhazikika. API imapangitsa kuti muwonjezere othandizira anu omwe amagwira ntchito ndi deta monga chidziwitso chikufika pa intaneti, osadikira kuti fayilo yonse itsitsidwe. Zinthu zomwe zikupezeka mu Node.js ndi monga ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream, ndi DecompressionStream.
  • Kukhazikitsa koyeserera kwa kasitomala wa WebSocket, kumagwirizana ndi asakatuli. Kuti muthandizire thandizo la WebSocket, mbendera ya "-experimental-websocket" imaperekedwa.
  • Anawonjeza njira yoyesera yogwiritsira ntchito kusakhazikika kwa ma module a JavaScript ESM (ECMAScript Modules, omwe amagwiritsidwa ntchito m'masakatuli) m'malo mwa CommonJS (zapadera za Node.js). Kusintha sikumakhudza ma module omwe mawonekedwe ake amafotokozedwa momveka bwino kudzera mugawo la "mtundu" mu package.json, yotchulidwa kudzera pa mbendera ya "--input-type", kapena ndi zoonekeratu chifukwa cha kuwonjezera mafayilo (.mjs kwa ESM, .cjs za CommonJS). Komabe, ma modules omwe sanatchulidwe momveka bwino kuti ndi CommonJS (mwachitsanzo, ali ndi ".js" extension) adzatengedwa ngati ma modules a ESM pamene mawonekedwe atsopano atsegulidwa. Kuti mutsegule makonda atsopano, mbendera ya "--experimental-default-type" yaperekedwa.
  • Injini ya V8 yasinthidwa kuti ikhale 11.8, yogwiritsidwa ntchito mu Chromium 118, yomwe tsopano ikuthandizira njira ya ArrayBuffer.prototype.transfer, luso lotha kupanga magulu (groupBy method) ndi malangizo a WebAssembly pokonza zosinthika (i32.add, i32.sub, i32.mul, i64 .add, i64.sub ndi i64.mul).
  • Thandizo la globalPreload handler lathetsedwa, m'malo mwa kulembetsa ndikuyambitsa mafoni kuti akonze ma module.
  • Njira ya "flush" yawonjezeredwa ku ntchito ya fs.writeFile kuti ikakamize deta kuti iwonongeke pagalimoto pambuyo pa ntchito iliyonse yolemba.
  • Kuchita bwino kwa ma code okhudzana ndi ma URL parsing, kutengera API, mitsinje, node:fs, ndi HTTP.
  • Chowonjezera chapadziko lonse cha navigator. Mwachitsanzo, kuti mupeze deta ya chiwerengero cha CPU cores, mungagwiritse ntchito navigator.hardwareConcurrency katundu.
  • Mu β€œ-test” parameter, chithandizo cha masks a glob awonjezedwa posankha mayeso oti ayendetse (mwachitsanzo, mutha kutchula β€œβ€”test **/*.test.js.”).
  • Woyang'anira phukusi wophatikizidwa npm 10.2.0 ndi llhttp 9.1.2 parser zasinthidwa.
  • Thandizo la Visual Studio 2019 ndi mitundu ya macOS yakale kuposa 11.0 yathetsedwa.

Pulatifomu ya Node.js itha kugwiritsidwa ntchito pokonza ma seva a mapulogalamu a pa intaneti komanso kupanga mapulogalamu okhazikika a kasitomala ndi ma seva. Kukulitsa magwiridwe antchito a Node.js, gulu lalikulu la ma module akonzedwa, momwe mungapeze ma module ndi kukhazikitsa kwa HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 ma seva ndi makasitomala, ma module ophatikizira. yokhala ndi mawebusayiti osiyanasiyana, WebSocket ndi Ajax handlers, zolumikizira za DBMS (MySQL, PostgreSQL, SQLite, MongoDB), injini zowonera, injini za CSS, kukhazikitsidwa kwa ma crypto algorithms ndi machitidwe ovomerezeka (OAuth), XML parsers.

Kuonetsetsa kukonzedwa kwa zopempha zambiri zofananira, Node.js imagwiritsa ntchito njira yotsatsira ma code asynchronous potengera kusatsekereza zochitika zosatsekereza komanso kutanthauzira kwa omenyera callback. Njira zothandizira zolumikizira ma multiplexing ndi epoll, kqueue, /dev/poll, ndikusankha. Pakulumikiza kuchulukitsa, laibulale ya libuv imagwiritsidwa ntchito, yomwe ndi chowonjezera cha libev pa Unix system ndi IOCP pa Windows. Laibulale ya libeio imagwiritsidwa ntchito popanga dziwe la ulusi, ndipo ma c-ares amaphatikizidwa kuti achite mafunso a DNS munjira yosatsekereza. Mafoni onse omwe amayambitsa kutsekereza amachitidwa mkati mwa dziwe la ulusi ndiyeno, monga oyendetsa ma siginecha, amasamutsa zotsatira za ntchito yawo kudzera pa chitoliro chosatchulidwa dzina (chitoliro). Kukonzekera kwa JavaScript code kumaperekedwa pogwiritsa ntchito injini ya V8 yopangidwa ndi Google (kuphatikizanso, Microsoft ikupanga Node.js ndi injini ya Chakra-Core).

Pachimake, Node.js ndi ofanana ndi Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks, ndi kukhazikitsidwa kwa zochitika za Tcl, koma zochitika za Node.js zimabisika kwa wopanga mapulogalamu ndipo zimafanana ndi zochitika pa intaneti. mu msakatuli. Polemba mapulogalamu a node.js, muyenera kuganizira zazomwe zimayendetsedwa ndi zochitika, mwachitsanzo, m'malo mochita "var result = db.query("select..");" podikirira kumaliza ntchito ndikukonza zotsatila, Node.js imagwiritsa ntchito mfundo ya kuphedwa kosagwirizana, i.e. code imasinthidwa kukhala "db.query("select..", function (result) {result processing});", momwe ulamuliro udzadutsa nthawi yomweyo ku code yowonjezera, ndipo zotsatira zafunso zidzasinthidwa pamene deta ikufika.

Source: opennet.ru

Kuwonjezera ndemanga