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

Node.js 18.0 kom út, vettvangur til að keyra netforrit í JavaScript. Node.js 18.0 er flokkað sem langtíma stuðningsútibú, en þessari stöðu verður aðeins úthlutað í október, eftir stöðugleika. Node.js 18.x verður stutt til apríl 2025. Viðhald á fyrri LTS útibúi Node.js 16.x mun vara til apríl 2024 og árið áður síðasta LTS útibú 14.x til apríl 2023. 12.x LTS útibúið verður hætt 30. apríl og Node.js 17.x sviðsetningarútibúið verður hætt 1. júní.

Helstu endurbætur:

  • V8 vélin hefur verið uppfærð í útgáfu 10.1, sem er notuð í Chromium 101. Í samanburði við 17.9.0 útgáfu Node.js er nú stuðningur við eiginleika eins og findLast og findLastIndex aðferðirnar til að finna þætti miðað við lok fylki og Intl.supportedValuesOf fallið. Bætt Intl.Locale API. Frumstillingu flokkareita og einkaaðferða hefur verið flýtt.
  • Forritaskilin fyrir tilrauna sækja() er sjálfgefið virkt, hannað til að hlaða tilföngum yfir netið. Útfærslan byggir á kóða frá HTTP/1.1 undici biðlaranum og er eins nálægt og hægt er svipuðu API sem er í vöfrum. Þetta felur í sér stuðning við FormData, Headers, Request og Response tengi til að vinna með HTTP beiðni og svarhausa. const res = await fetch('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = await res.json(); console.log(gögn); }
  • Tilraunaútfærsla á Web Streams API hefur verið bætt við, sem veitir aðgang að gagnastraumum sem berast um netið. API gerir þér kleift að bæta við þínum eigin meðhöndlum til að 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 nú eru fáanlegir í Node.js eru ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream og DecompressionStream.
  • Blob API hefur verið fært í stöðugt, sem gerir þér kleift að hylja óbreytanleg hrá gögn til öruggrar notkunar í mismunandi starfsþráðum.
  • BroadcastChannel API hefur verið gert stöðugt, sem gerir þér kleift að skipuleggja skilaboðaskipti í ósamstilltum ham á „einn sendandi - margir viðtakendur“ sniði.
  • Bætt við tilraunaeiningu hnút:próf til að búa til og keyra próf í JavaScript sem skila niðurstöðum á TAP (Test Anything Protocol) sniði.
  • Kynslóð tilbúinna samsetninga fyrir Red Hat Enterprise Linux (RHEL) 8 og aðrar dreifingar byggðar á Glibc 2.28+, þar á meðal Debian 10 og Ubuntu 20.04, sem og fyrir macOS 10.15+ er til staðar. Vegna vandamála með V8 vélargerðina hefur gerð 32-bita smíði fyrir Windows verið stöðvuð tímabundið.
  • Gefið tilraunavalkost til að smíða Node.js keyrslu með notendavöldum íhlutum sem voru frumstilltir við ræsingu. Til að skilgreina upphafsþættina hefur „--node-snapshot-main“ valmöguleikanum verið bætt við uppsetningarforritið, til dæmis „./configure —node-snapshot-main=marked.js; nafn hnút"

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