Platfòm JavaScript bò sèvè Node.js 21.0 disponib

Node.js 21.0 te lage, yon platfòm pou kouri aplikasyon rezo nan JavaScript. Branch Node.js 21.0 pral sipòte pou 6 mwa. Nan jou kap vini yo, estabilizasyon Node.js 20 branch yo pral konplete, ki pral resevwa estati LTS epi yo pral sipòte jiska avril 2026. Antretyen branch LTS anvan Node.js 18.0 pral dire jiska septanm 2025, ak ane anvan dènye branch LTS 16.0 jiska avril 2024.

Gwo amelyorasyon:

  • API Fetch la te deklare estab, ki fèt pou chaje resous sou rezo a ak senplifye ekri kòd JavaScript inivèsèl apwopriye pou travay sou sèvè ak kliyan. Aplikasyon an baze sou kòd ki soti nan kliyan HTTP/1.1 undici epi li pi pre ke posib ak API ki sanble yo bay nan navigatè yo. API a gen ladan metòd fetch() ak objè Headers. Demann ak Repons, ki reprezante tèt yo HTTP, demann ak repons. const res = tann chache('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = tann res.json (); console.log(done); }
  • Sipò pou API WebStreams, ki bay aksè a kouran done yo resevwa sou rezo a, te estabilize. API a fè li posib pou ajoute pwòp moun kap okipe ou yo ki travay ak done kòm enfòmasyon rive sou rezo a, san yo pa tann pou tout fichye a dwe telechaje. Objè ki disponib nan Node.js gen ladan ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream, ak DecompressionStream.
  • Te ajoute aplikasyon eksperimantal nan kliyan WebSocket, konpatib ak navigatè. Pou pèmèt sipò WebSocket, yo bay drapo "--experimental-websocket".
  • Te ajoute yon mòd eksperimantal pou itilize aplikasyon an default nan JavaScript modil ESM (ECMAScript Modil, yo itilize nan modil pou navigatè) olye pou yo CommonJS (espesifik nan Node.js). Chanjman an pa afekte modil ki gen fòma klèman defini atravè jaden "type" nan package.json, espesifye atravè drapo "--input-type" la, oswa li evidan akòz ekstansyon fichye a (.mjs pou ESM, .cjs). pou CommonJS). Sepandan, modil ki pa klèman defini kòm CommonJS (pa egzanp, gen yon ekstansyon ".js") yo pral trete kòm modil ESM lè nouvo mòd la aktive. Pou aktive nouvo paramèt modil yo, yo te pwopoze drapo "--experimental-default-type".
  • Motè V8 la te mete ajou nan vèsyon 11.8, ki itilize nan Chromium 118, ki kounye a sipòte metòd ArrayBuffer.prototype.transfer, kapasite pou gwoupe etalaj (metòd groupBy) ak enstriksyon WebAssembly pou trete konstan (i32.add, i32.sub, i32.mul, i64 .add, i64.sub ak i64.mul).
  • Sipò pou moun kap okipe globalPreload la sispann, an favè enskri ak inisyalize apèl pou konfigirasyon modil yo.
  • Yo te ajoute yon opsyon "flush" nan fonksyon an fs.writeFile pou fòse done yo dwe kole nan kondwi a apre chak operasyon ekri.
  • Amelyore pèfòmans kòd ki gen rapò ak analiz URL, chache API, stream, node:fs, ak HTTP.
  • Te ajoute objè navigatè mondyal la. Pou egzanp, pou jwenn done sou kantite nwayo CPU, ou ka itilize pwopriyete navigator.hardwareConcurrency.
  • Nan paramèt "-test" la, sipò pou mask glob yo te ajoute pou chwazi tès yo kouri (pa egzanp, ou ka presize "-test **/*.test.js.").
  • Manadjè pake pake npm 10.2.0 ak analizeur llhttp 9.1.2 yo te mete ajou.
  • Sipò pou Visual Studio 2019 ak vèsyon macOS ki gen plis pase 11.0 sispann.

Platfòm Node.js la ka itilize tou de pou sipò bò sèvè nan aplikasyon entènèt, ak pou kreye pwogram rezo kliyan ak sèvè òdinè. Pou elaji fonksyonalite aplikasyon pou Node.js, yo te prepare yon gwo koleksyon modil, kote ou ka jwenn modil ak aplikasyon HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 serveurs ak kliyan, modil pou entegrasyon. ak plizyè kad entènèt, WebSocket ak Ajax, konektè nan DBMS (MySQL, PostgreSQL, SQLite, MongoDB), motè modèl, motè CSS, aplikasyon algoritm kriptografik ak sistèm otorizasyon (OAuth), analizeur XML.

Pou okipe yon gwo kantite demann paralèl, Node.js sèvi ak yon modèl ekzekisyon kòd asynchrone ki baze sou pwosesis evènman ki pa bloke ak defini moun kap okipe apèl. Metòd ki sipòte pou koneksyon multiplexage yo enkli epoll, kqueue, /dev/poll, epi chwazi. Pou koneksyon multiplexing, yo itilize bibliyotèk libuv la, ki se yon sipleman libev sou sistèm Unix ak IOCP sou Windows. Libeio bibliyotèk la itilize pou kreye yon pisin fil, epi c-ares entegre pou fè demann DNS nan yon mòd ki pa bloke. Tout apèl sistèm ki lakòz bloke yo egzekite nan pisin fil la epi answit, tankou moun k ap okipe siyal yo, pase rezilta travay yo tounen nan yon tiyo san non. Egzekisyon kòd JavaScript asire atravè itilizasyon motè V8 Google devlope (anplis de sa, Microsoft ap devlope yon vèsyon Node.js ak motè Chakra-Core).

Nan nwayo li yo, Node.js sanble ak Perl AnyEvent, Ruby Evènman Machine, Python Twisted kad ak aplikasyon evènman nan Tcl, men bouk evènman an nan Node.js kache nan pwomotè a epi li sanble ak pwosesis evènman nan yon aplikasyon entènèt. kouri nan navigatè a. Lè w ap ekri aplikasyon pou node.js, li nesesè pou w pran an kont spesifik pwogramasyon ki baze sou evènman an, pa egzanp, olye pou w fè "var result = db.query ("select..");" ak ap tann pou fini an nan travay ak pwosesis ki vin apre nan rezilta yo, Node.js sèvi ak prensip la nan ekzekisyon asynchrone, i.e. se kòd la transfòme nan "db.query ("select..", fonksyon (rezilta) {pwosesis rezilta});", nan ki kontwòl pral imedyatman pase nan plis kòd, epi rezilta rechèch la pral trete kòm done rive.

Sous: opennet.ru

Add nouvo kòmantè