የአገልጋይ ጎን JavaScript መድረክ Node.js 21.0 ይገኛል።

Node.js 21.0 በጃቫስክሪፕት ውስጥ የኔትወርክ አፕሊኬሽኖችን የሚያስኬድበት መድረክ ተለቀቀ። Node.js 21.0 ቅርንጫፍ ለ6 ወራት ይደገፋል። በመጪዎቹ ቀናት የNode.js 20 ቅርንጫፍ ማረጋጋት ይጠናቀቃል፣ ይህም የLTS ሁኔታን የሚቀበል እና እስከ ኤፕሪል 2026 ድረስ የሚደገፍ ይሆናል። የNode.js 18.0 የቀድሞ LTS ቅርንጫፍ ጥገና እስከ ሴፕቴምበር 2025 ድረስ እና ካለፈው LTS ቅርንጫፍ 16.0 በፊት ባለው አመት እስከ ኤፕሪል 2024 ድረስ ይቆያል።

ዋና ማሻሻያዎች፡-

  • የፌች ኤፒአይ በአውታረ መረቡ ላይ ሀብቶችን ለመጫን እና በአገልጋዩ እና በደንበኛ ጎኖች ላይ ለመስራት ተስማሚ የሆነውን ሁለንተናዊ የጃቫ ስክሪፕት ኮድ ለመፃፍ የተነደፈ የተረጋጋ እንደሆነ ታውጇል። አተገባበሩ ከኤችቲቲፒ/1.1 undici ደንበኛ በተገኘ ኮድ ላይ የተመሰረተ እና በተቻለ መጠን በአሳሾች ውስጥ ከሚቀርበው ተመሳሳይ ኤፒአይ ጋር ነው። ኤፒአይ የማምጣት() ዘዴን እና የራስጌ ነገሮችን ያካትታል። ጥያቄ እና ምላሽ፣ የኤችቲቲፒ ራስጌዎችን በመወከል፣ ጥያቄ እና ምላሽ። const res = መጥቶ ይጠብቁ ('https://nodejs.org/api/documentation.json'); ከሆነ (res.ok) {const data = res.json ይጠብቁ (); console.log (ዳታ); }
  • በአውታረ መረቡ ላይ የተቀበሏቸው የውሂብ ዥረቶች መዳረሻን የሚያቀርበው የ WebStreams API ድጋፍ ተረጋግቷል። ሙሉው ፋይል እስኪወርድ ድረስ ኤፒአይ መረጃው በአውታረ መረቡ ላይ ሲደርስ ከውሂብ ጋር የሚሰሩ ተቆጣጣሪዎችዎን ለመጨመር ያስችላል። በ Node.js ውስጥ የሚገኙት ነገሮች ReadableStream*፣ TransformStream*፣ WritableStream*፣ TextEncoderStream፣ TextDecoderStream፣ CompressionStream እና DecompressionStream ያካትታሉ።
  • ከአሳሾች ጋር ተኳሃኝ የሆነ የWebSocket ደንበኛ ታክሏል። የWebSocket ድጋፍን ለማንቃት የ"--experimental-websocket" ባንዲራ ቀርቧል።
  • በCommonJS (ለ Node.js የተወሰነ) ምትክ የጃቫ ስክሪፕት ሞጁሎችን ESM (ECMAScript Modules፣ በሞጁሎች ለአሳሾች ጥቅም ላይ የሚውል) ለመጠቀም የሙከራ ሁነታ ታክሏል። ለውጡ ቅርጸታቸው በPack.json ውስጥ ባለው "አይነት" መስክ፣ በ"--የግቤት አይነት" ባንዲራ በኩል የተገለጸውን፣ ወይም በፋይል ቅጥያው (.mjs ለ ESM፣ .cjs) በግልጽ የተገለጹ ሞጁሎችን አይነካም። ለ CommonJS)። ነገር ግን፣ እንደ CommonJS (ለምሳሌ “.js” ቅጥያ ያለው) በግልጽ ያልተገለጹ ሞጁሎች አዲሱ ሁነታ ሲነቃ እንደ ESM ሞጁሎች ይወሰዳሉ። አዲስ ሞጁል ቅንብሮችን ለማንቃት የ«--የሙከራ-ነባሪ-አይነት» ባንዲራ ቀርቧል።
  • የV8 ኤንጂን ወደ ስሪት 11.8 ተዘምኗል፣ በChromium 118 ጥቅም ላይ ይውላል፣ እሱም አሁን የ ArrayBuffer.prototype.transfer method፣ ድርድር የመሰብሰብ ችሎታ (ቡድንBy method) እና የWebAssembly መመሪያዎችን (i32.add, i32.sub,) ይደግፋል። i32.mul, i64 .add, i64.sub እና i64.mul).
  • ሞጁሎችን ለማዋቀር ለመመዝገብ እና ጥሪዎችን ለመጀመር ለግሎባል ፕሪሎድ ተቆጣጣሪ ድጋፍ ተቋርጧል።
  • ከእያንዳንዱ የፅሁፍ ስራ በኋላ ውሂብ ወደ ድራይቭ እንዲፈስ ለማስገደድ የ "flush" አማራጭ ወደ fs.writeFile ተግባር ተጨምሯል.
  • የተሻሻለ የኮድ አፈጻጸም ከዩአርኤል መተንተን፣ ማምጣት ኤፒአይ፣ ዥረቶች፣ መስቀለኛ መንገድ:fs እና HTTP።
  • አለምአቀፍ የአሳሽ ነገር ታክሏል። ለምሳሌ፣ ስለ ሲፒዩ ኮሮች ብዛት መረጃ ለማግኘት፣ navigator.hardwareConcurrency ንብረቱን መጠቀም ይችላሉ።
  • በ"-ሙከራ" ግቤት ውስጥ፣ የሚሄዱ ሙከራዎችን ለመምረጥ ለግሎብ ማስክዎች ድጋፍ ተጨምሯል (ለምሳሌ፡- “— test **/*.test.js.”)።
  • የተጠቀለለው የጥቅል አስተዳዳሪ npm 10.2.0 እና lhttp 9.1.2 ተንታኝ ተዘምኗል።
  • የ Visual Studio 2019 ድጋፍ እና ከ11.0 በላይ የቆዩ የ macOS ስሪቶች ተቋርጧል።

የ Node.js መድረክ ለድር መተግበሪያዎች አገልጋይ ጥገና እና መደበኛ የደንበኛ እና የአገልጋይ አውታረ መረብ ፕሮግራሞችን ለመፍጠር ሁለቱንም ሊያገለግል ይችላል። ለ Node.js አፕሊኬሽኖች ተግባራዊነትን ለማስፋት ብዙ የሞጁሎች ስብስብ ተዘጋጅቷል ፣ በዚህ ውስጥ የኤችቲቲፒ ፣ SMTP ፣ XMPP ፣ ዲ ኤን ኤስ ፣ ኤፍቲፒ ፣ IMAP ፣ POP3 አገልጋዮች እና ደንበኞች ፣ ውህደቶች ሞጁሎችን ማግኘት ይችላሉ ። በተለያዩ የድር ማዕቀፎች ፣ WebSocket እና Ajax ተቆጣጣሪዎች ፣ DBMS ማገናኛዎች (MySQL ፣ PostgreSQL ፣ SQLite ፣ MongoDB) ፣ ቴምፕሊንግ ሞተሮች ፣ CSS ሞተሮች ፣ የ crypto ስልተ ቀመሮች እና የፈቀዳ ስርዓቶች (OAuth) አተገባበር ፣ ኤክስኤምኤል ተንታኞች።

በርካታ ቁጥር ያላቸው ትይዩ ጥያቄዎችን ማስተናገድን ለማረጋገጥ፣ Node.js በማይከለከል የክስተት አያያዝ እና የመልሶ መደወያ ተቆጣጣሪዎች ትርጉም ላይ የተመሰረተ ያልተመሳሰለ ኮድ ማስፈጸሚያ ሞዴልን ይጠቀማል። ብዙ ግንኙነቶችን ለማገናኘት የሚደገፉ ዘዴዎች epoll, kqueue, /dev/poll እና ይምረጡ. ለግንኙነት ማባዛት፣ የሊቡቭ ቤተ-መጽሐፍት ጥቅም ላይ ይውላል፣ ይህም በዩኒክስ ሲስተምስ ላይ ለሊቭቭ እና በዊንዶውስ ላይ IOCP ነው። የሊቤዮ ቤተ-መጽሐፍት የክር ገንዳ ለመፍጠር ይጠቅማል፣ እና c-ares የተዋሃደው የዲ ኤን ኤስ መጠይቆችን በማይታገድ ሁነታ ነው። እገዳን የሚፈጥሩ ሁሉም የስርዓት ጥሪዎች በክር ገንዳ ውስጥ ይከናወናሉ ከዚያም ልክ እንደ ሲግናል ተቆጣጣሪዎች የስራቸውን ውጤት ባልታወቀ ቧንቧ (ቧንቧ) መልሰው ያስተላልፋሉ። የጃቫስክሪፕት ኮድ ማስፈጸሚያ የሚቀርበው በጎግል በተዘጋጀው የቪ8 ኢንጂን በመጠቀም ነው (በተጨማሪም ማይክሮሶፍት የ Node.js ስሪት ከቻክራ-ኮር ሞተር ጋር እያዘጋጀ ነው።)

በዋናው ላይ፣ Node.js ከፐርል AnyEvent፣ Ruby Event Machine፣ Python Twisted frameworks እና Tcl ክስተት አተገባበር ጋር ተመሳሳይ ነው፣ ነገር ግን በ Node.js ውስጥ ያለው የክስተት ምልልስ ከገንቢው የተደበቀ እና በሚሰራ የድር መተግበሪያ ውስጥ የክስተት አያያዝን ይመስላል። በአሳሽ ውስጥ. ለ node.js ማመልከቻዎችን በሚጽፉበት ጊዜ የክስተት-ተኮር ፕሮግራሞችን ልዩ ሁኔታዎች ግምት ውስጥ ማስገባት አለብዎት, ለምሳሌ "var result = db.query("select..") ከማድረግ ይልቅ. ሥራውን ለማጠናቀቅ እና ውጤቱን ለማስኬድ በመጠባበቅ ፣ Node.js ያልተመሳሰለ የአፈፃፀም መርህን ይጠቀማል ፣ ማለትም። ኮዱ ወደ "db.query("ይምረጡ.."፣ ተግባር (ውጤት) {ውጤት ማቀናበር}) ተቀይሯል፣ በዚህ ውስጥ መቆጣጠሪያው ወዲያውኑ ወደ ተጨማሪ ኮድ ያልፋል፣ እና የጥያቄው ውጤት ውሂብ እንደደረሰ ይከናወናል።

ምንጭ: opennet.ru

አስተያየት ያክሉ