JavaScript pallur á netþjóni Node.js 21.0 í boði

Node.js 21.0 kom út, vettvangur til að keyra netforrit í JavaScript. Node.js 21.0 útibúið verður stutt í 6 mánuði. Á næstu dögum verður lokið við stöðugleika Node.js 20 útibúsins sem fær LTS stöðu og verður stutt til apríl 2026. Viðhald á fyrra LTS útibúi Node.js 18.0 mun vara til september 2025 og árið áður síðasta LTS útibú 16.0 til apríl 2024.

Helstu endurbætur:

  • Fetch API hefur verið lýst stöðugt, hannað til að hlaða tilföngum yfir netið og einfalda ritun alhliða JavaScript kóða sem hentar til að vinna á miðlara- og biðlarahliðinni. Útfærslan er byggð á kóðanum frá HTTP/1.1 undici biðlaranum og er eins nálægt og hægt er við svipaða API sem er í vöfrum. API inniheldur fetch() aðferðina og Headers hluti. Beiðni og svar, sem táknar HTTP hausa, beiðni og svar. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json(); console.log(gögn); }
  • Stuðningur við WebStreams API, sem veitir aðgang að gagnastraumum sem berast um netið, hefur verið stöðugur. API gerir þér kleift að bæta við þínum eigin meðhöndlum sem vinna með gögn þegar upplýsingar berast um netið, án þess að bíða eftir að allri skránni sé hlaðið niður. Hlutir sem eru fáanlegir í Node.js eru meðal annars ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream og DecompressionStream.
  • Bætt við tilraunaútfærslu WebSocket biðlara, samhæft við vafra. Til að virkja WebSocket stuðning er „--experimental-websocket“ fáninn veittur.
  • Bætti við tilraunaham til að nota sjálfgefna útfærslu á JavaScript einingum ESM (ECMAScript Modules, notaðar í einingum fyrir vafra) í stað CommonJS (sérstaklega fyrir Node.js). Breytingin hefur ekki áhrif á einingar þar sem sniðið er sérstaklega skilgreint með „tegund“ reitnum í package.json, tilgreint með „--input-type“ fánanum, eða er augljóst vegna skráarlengingarinnar (.mjs fyrir ESM, .cjs fyrir CommonJS). Hins vegar, einingar sem eru ekki beinlínis skilgreindar sem CommonJS (til dæmis hafa „.js“ framlengingu) verða meðhöndlaðar sem ESM einingar þegar nýja stillingin er virkjuð. Til að virkja nýjar einingastillingar hefur „--experimental-default-type“ flaggið verið lagt til.
  • V8 vélin hefur verið uppfærð í útgáfu 11.8, notuð í Chromium 118, sem styður nú ArrayBuffer.prototype.transfer aðferðina, getu til að flokka fylki (groupBy aðferð) og WebAssembly leiðbeiningar fyrir vinnslu fasta (i32.add, i32.sub, i32.mul, i64 .add, i64.sub og i64.mul).
  • Stuðningur við globalPreload meðhöndlunina hefur verið hætt, í þágu skráningar og frumstillingar á símtölum til að stilla einingar.
  • „skola“ valkosti hefur verið bætt við fs.writeFile aðgerðina til að þvinga gögn til að skola í drifið eftir hverja skrifaðgerð.
  • Bætt afköst kóða sem tengist greiningu vefslóða, sótt API, strauma, hnút:fs og HTTP.
  • Bætt við alþjóðlegum leiðsöguhlut. Til að fá upplýsingar um fjölda örgjörvakjarna er til dæmis hægt að nota eiginleikann navigator.hardwareConcurrency.
  • Í „—test“ færibreytunni hefur stuðningi við glob grímur verið bætt við til að velja próf til að keyra (til dæmis geturðu tilgreint „—test **/*.test.js.”).
  • Búnaðarpakkastjórinn npm 10.2.0 og llhttp 9.1.2 flokkarinn hafa verið uppfærðir.
  • Stuðningur við Visual Studio 2019 og útgáfur af macOS eldri en 11.0 hefur verið hætt.

Node.js pallurinn er bæði hægt að nota til að viðhalda netþjónum á vefforritum og til að búa til venjuleg netforrit fyrir biðlara og netþjóna. Til að auka virkni forrita fyrir Node.js hefur verið útbúið mikið safn eininga, þar sem þú getur fundið einingar með útfærslu á HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 netþjónum og viðskiptavinum, einingar til samþættingar með ýmsum vefumgjörðum, WebSocket og Ajax meðhöndlum, DBMS tengjum (MySQL, PostgreSQL, SQLite, MongoDB), sniðmátunarvélum, CSS vélum, útfærslur á dulritunaralgrímum og heimildakerfum (OAuth), XML þáttara.

Til að tryggja vinnslu á miklum fjölda samhliða beiðna notar Node.js ósamstillt keyrslulíkan sem byggir á ólokandi atburðameðferð og skilgreiningu á meðhöndlun svarhringinga. Aðferðir sem studdar eru til að margfalda tengingar eru epoll, kqueue, /dev/poll og select. Fyrir tengingar margföldun er libuv bókasafnið notað, sem er viðbót fyrir libev á Unix kerfum og IOCP á Windows. Libeio bókasafnið er notað til að búa til þráðasafn og c-ares er samþætt til að framkvæma DNS fyrirspurnir í ólokandi ham. Öll kerfissímtöl sem valda lokun eru keyrð inni í þráðapottinum og flytja síðan, eins og merkjameðferðaraðilar, niðurstöðu vinnu sinnar aftur í gegnum ónefnda pípu (pípu). Framkvæmd JavaScript kóða er veitt með notkun V8 vélarinnar sem Google hefur þróað (auk þess er Microsoft að þróa útgáfu af Node.js með Chakra-Core vélinni).

Í kjarna sínum er Node.js svipað og Perl AnyEvent, Ruby Event Machine, Python Twisted ramma og Tcl viðburðarútfærslan, en viðburðarlykkjan í Node.js er falin þróunaraðilanum og líkist viðburðameðferð í vefforriti sem keyrir í vafra. Þegar þú skrifar forrit fyrir node.js þarftu að hafa í huga sérstöðu atburðadrifna forritunar, til dæmis í stað þess að gera "var result = db.query("select..");" með bið eftir verklokum og síðari úrvinnslu á niðurstöðum notar Node.js meginregluna um ósamstillta framkvæmd, þ.e. Kóðanum er umbreytt í "db.query("velja..", fall (niðurstaða) {niðurstöðuvinnsla});", þar sem stjórn mun samstundis fara í frekari kóða og niðurstöður fyrirspurnarinnar verða unnar þegar gögn berast.

Heimild: opennet.ru

Bæta við athugasemd