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

Node.js 19.0, vettvangur til að keyra netforrit í JavaScript, kom út. Node.js 19 er venjulegt stuðningsútibú með uppfærslur tiltækar til júní 2023. Á næstu dögum verður lokið við stöðugleika Node.js 18 útibúsins sem fær LTS stöðu og verður stutt til apríl 2025. Viðhald á fyrri LTS útibúi Node.js 16.0 mun vara til september 2023 og árið áður síðasta LTS útibú 14.0 til apríl 2023.

Helstu endurbætur:

  • V8 vélin hefur verið uppfærð í útgáfu 10.7, notuð í Chromium 107. Meðal breytinga á vélinni miðað við Node.js 18 útibúið er tekið fram útfærslu þriðju útgáfunnar af Intl.NumberFormat API, sem bætir við nýjum aðgerðum formatRange (), formatRangeToParts() og selectRange(), flokkun menga, nýir möguleikar fyrir námundun og stillingarnákvæmni, hæfileikinn til að túlka strengi sem aukastafi. Meðfylgjandi ósjálfstæðir llhttp 8.1.0 og npm 8.19.2 hafa einnig verið uppfærðar.
  • Tilraunaskipun "node -watch" hefur verið lögð til með innleiðingu á vaktham sem tryggir að ferlið sé endurræst þegar innflutta skráin breytist (til dæmis ef "node -watch index.js" er keyrt verður ferlið sjálfkrafa endurræst þegar index.js breytist).
  • Fyrir allar útleiðandi HTTP/HTTPS tengingar er stuðningur við HTTP 1.1 Keep-Alive vélbúnaðurinn virkur, sem gerir tenginguna opna í ákveðinn tíma til að vinna úr nokkrum HTTP beiðnum innan sömu tengingarinnar. Búist er við að Keep-Alive muni bæta afköst og afköst. Sjálfgefið er að opnunartími tengingar er stilltur á 5 sekúndur. Stuðningi við að flokka Keep-Alive HTTP hausinn í svörum miðlara hefur verið bætt við HTTP biðlaraútfærsluna og sjálfvirkri aftengingu óvirkra viðskiptavina sem nota Keep-Alive hefur verið bætt við Node.js HTTP miðlaraútfærsluna.
  • WebCrypto API hefur verið flutt í stöðugan flokk, að undanskildum aðgerðum sem nota Ed25519, Ed448, X25519 og X448 reiknirit. Til að fá aðgang að WebCrypto einingunni geturðu nú notað globalThis.crypto eða require('node:crypto').webcrypto.
  • Stuðningur við DTrace, SystemTap og ETW (Event Tracing for Windows) rakningartólin hefur verið fjarlægð, en viðhald þeirra var talið óviðeigandi vegna þess hve flókið það er að viðhalda því uppfærðu ef ekki er til staðar viðeigandi stuðningsáætlun.

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