Server-side JavaScript වේදිකාව Node.js 21.0 ඇත

Node.js 21.0 නිකුත් කරන ලදී, JavaScript හි ජාල යෙදුම් ධාවනය සඳහා වේදිකාවක්. Node.js 21.0 ශාඛාව මාස 6ක් සඳහා සහය දක්වයි. ඉදිරි දිනවලදී, Node.js 20 ශාඛාවේ ස්ථායීකරණය අවසන් වනු ඇත, එය LTS තත්ත්වය ලබා ගන්නා අතර 2026 අප්‍රේල් දක්වා සහය දක්වයි. Node.js 18.0 හි පෙර LTS ශාඛාව නඩත්තු කිරීම 2025 සැප්තැම්බර් දක්වාත්, අවසාන LTS ශාඛාව 16.0 ට පෙර වසර 2024 අප්‍රේල් දක්වාත් පවතිනු ඇත.

ප්රධාන වැඩිදියුණු කිරීම්:

  • Fetch API ස්ථායී ලෙස ප්‍රකාශ කර ඇත, ජාලය හරහා සම්පත් පූරණය කිරීම සඳහා නිර්මාණය කර ඇති අතර සේවාදායකයේ සහ සේවාදායක පැතිවල වැඩ කිරීමට සුදුසු විශ්වීය JavaScript කේතය ලිවීම සරල කරයි. ක්‍රියාත්මක කිරීම HTTP/1.1 undici සේවාලාභියාගේ කේතය මත පදනම් වන අතර බ්‍රවුසරවල සපයා ඇති සමාන API වෙත හැකි තරම් සමීප වේ. API හි fetch() ක්‍රමය සහ Headers objects ඇතුළත් වේ. HTTP ශීර්ෂයන් නියෝජනය කරමින් ඉල්ලීම සහ ප්‍රතිචාරය, ඉල්ලීම සහ ප්‍රතිචාරය. const res = ලබා ගැනීමට බලා සිටීම ('https://nodejs.org/api/documentation.json'); නම් (res.ok) {const data = res.json (); console.log(දත්ත); }
  • ජාලය හරහා ලැබෙන දත්ත ප්‍රවාහ වෙත ප්‍රවේශය සපයන WebStreams API සඳහා වන සහය ස්ථායි කර ඇත. API මඟින් සම්පූර්ණ ගොනුව බාගත වන තෙක් බලා නොසිට, ජාලය හරහා තොරතුරු පැමිණෙන විට දත්ත සමඟ ක්‍රියා කරන ඔබේම හසුරුවන්නක් එක් කිරීමට හැකි වේ. Node.js හි ඇති වස්තූන් අතර ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream, සහ DecompressionStream ඇතුළත් වේ.
  • WebSocket සේවාලාභියාගේ පර්යේෂණාත්මක ක්‍රියාත්මක කිරීම, බ්‍රවුසර සමඟ අනුකූල එකතු කරන ලදී. WebSocket සහාය සබල කිරීමට, "--පරීක්ෂණාත්මක-websocket" ධජය සපයනු ලැබේ.
  • CommonJS (Node.js සඳහා විශේෂිත) වෙනුවට JavaScript මොඩියුල ESM (ECMAScript මොඩියුල, බ්‍රව්සර් සඳහා මොඩියුලවල භාවිතා වන) පෙරනිමි ක්‍රියාත්මක කිරීම භාවිතා කිරීම සඳහා පර්යේෂණාත්මක මාදිලියක් එක් කරන ලදී. පැකේජය.json හි "වර්ගය" ක්ෂේත්‍රය හරහා පැහැදිලිව නිර්වචනය කර ඇති, "--ආදාන-වර්ගය" ධජය හරහා නිශ්චිතව දක්වා ඇති, හෝ ගොනු දිගුව (.mjs සඳහා ESM, .cjs) නිසා පැහැදිලි වන මොඩියුලවලට වෙනස් කිරීම බලපාන්නේ නැත. CommonJS සඳහා). කෙසේ වෙතත්, CommonJS ලෙස නිශ්චිතව නිර්වචනය නොකළ මොඩියුල (උදාහරණයක් ලෙස, “.js” දිගුවක් ඇත) නව මාදිලිය සක්‍රීය කළ විට ESM මොඩියුල ලෙස සලකනු ලැබේ. නව මොඩියුල සැකසුම් සක්රිය කිරීමට, "--පරීක්ෂණාත්මක-පෙරනිමි-වර්ගය" ධජය යෝජනා කර ඇත.
  • V8 එන්ජිම Chromium 11.8 හි භාවිතා වන 118 අනුවාදයට යාවත්කාලීන කර ඇත, එය දැන් ArrayBuffer.prototype.transfer ක්‍රමයට, අරා සමූහ කිරීමේ හැකියාව (groupBy method) සහ නියතයන් සැකසීම සඳහා WebAssembly උපදෙස් (i32.add, i32.sub, i32.mul, i64 .add, i64.sub සහ i64.mul).
  • මොඩියුල වින්‍යාස කිරීම සඳහා ඇමතුම් ලියාපදිංචි කිරීම සහ ආරම්භ කිරීම සඳහා ගෝලීය ප්‍රෙලෝඩ් හසුරුවන්නා සඳහා වන සහාය අත්හිටුවා ඇත.
  • එක් එක් ලිවීමේ මෙහෙයුමෙන් පසුව ධාවකය වෙත දත්ත ෆ්ලෂ් කිරීමට බල කිරීම සඳහා fs.writeFile ශ්‍රිතයට “ෆ්ලෂ්” විකල්පයක් එක් කර ඇත.
  • URL විග්‍රහ කිරීම, ලබා ගැනීම API, ප්‍රවාහ, node:fs, සහ HTTP සම්බන්ධ කේතයේ වැඩි දියුණු කළ කාර්ය සාධනය.
  • ගෝලීය නාවික වස්තුව එක් කරන ලදී. උදාහරණයක් ලෙස, CPU කෝර් ගණන පිළිබඳ දත්ත ලබා ගැනීම සඳහා, ඔබට navigator.hardwareConcurrency දේපල භාවිතා කළ හැකිය.
  • “—test” පරාමිතිය තුළ, ක්‍රියාත්මක වීමට පරීක්ෂණ තේරීම සඳහා ග්ලෝබ් මාස්ක් සඳහා සහය එක් කර ඇත (උදාහරණයක් ලෙස, ඔබට “—test **/*.test.js” සඳහන් කළ හැක).
  • බණ්ඩල් කරන ලද පැකේජ කළමනාකරු npm 10.2.0 සහ llhttp 9.1.2 විග්‍රහකය යාවත්කාලීන කර ඇත.
  • Visual Studio 2019 සහ 11.0 ට වඩා පැරණි macOS අනුවාද සඳහා සහාය අත්හිටුවා ඇත.

Node.js වේදිකාව වෙබ් යෙදුම්වල සේවාදායක නඩත්තුව සඳහා සහ සාමාන්‍ය සේවාදායක සහ සේවාදායක ජාල වැඩසටහන් නිර්මාණය කිරීම සඳහා භාවිතා කළ හැක. Node.js සඳහා වන යෙදුම්වල ක්‍රියාකාරිත්වය පුළුල් කිරීම සඳහා, විශාල මොඩියුල එකතුවක් සකස් කර ඇති අතර, ඔබට HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 සේවාදායකයන් සහ සේවාදායකයින්, ඒකාබද්ධ කිරීම සඳහා මොඩියුල ක්‍රියාත්මක කිරීම සමඟ මොඩියුල සොයාගත හැකිය. විවිධ වෙබ් රාමු, WebSocket සහ Ajax හසුරුවන්නන්, DBMS සම්බන්ධක (MySQL, PostgreSQL, SQLite, MongoDB), සැකිලි එන්ජින්, CSS එන්ජින්, ක්‍රිප්ටෝ ඇල්ගොරිතම සහ අවසර පද්ධති ක්‍රියාත්මක කිරීම (OAuth), XML විග්‍රහ කරන්නන් සමඟ.

සමාන්තර ඉල්ලීම් විශාල සංඛ්‍යාවක් සැකසීම සහතික කිරීම සඳහා, Node.js අවහිර නොවන සිදුවීම් හැසිරවීම සහ ආපසු ඇමතුම් හසුරුවන්නන්ගේ නිර්වචනය මත පදනම් වූ අසමමුහුර්ත කේත ක්‍රියාත්මක කිරීමේ ආකෘතියක් භාවිතා කරයි. බහුවිධ සම්බන්ධතා සඳහා සහය දක්වන ක්‍රම වන්නේ epoll, kqueue, /dev/poll, සහ තේරීමයි. සම්බන්ධතා මල්ටිප්ලෙක්සින් සඳහා, Libuv පුස්තකාලය භාවිතා කරනු ලැබේ, එය Unix පද්ධති මත libev සහ Windows මත IOCP සඳහා ඇඩෝනයක් වේ. නූල් සංචිතයක් සෑදීමට libeio පුස්තකාලය භාවිතා කරන අතර, අවහිර නොවන ආකාරයෙන් DNS විමසුම් සිදු කිරීමට c-ares ඒකාබද්ධ වේ. අවහිර වීමට හේතු වන සියලුම පද්ධති ඇමතුම් නූල් තටාකය තුළ ක්‍රියාත්මක වන අතර පසුව, සංඥා හසුරුවන්නා මෙන්, ඔවුන්ගේ කාර්යයේ ප්‍රති result ලය නම් නොකළ පයිප්පයක් (නල) හරහා ආපසු මාරු කරනු ලැබේ. ජාවාස්ක්‍රිප්ට් කේතය ක්‍රියාත්මක කිරීම ගූගල් විසින් සංවර්ධනය කරන ලද V8 එන්ජිම භාවිතයෙන් සපයනු ලැබේ (මීට අමතරව, Microsoft විසින් Chakra-Core එන්ජිම සමඟ Node.js අනුවාදයක් සංවර්ධනය කරයි).

එහි හරය තුළ, Node.js Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks සහ Tcl සිදුවීම් ක්‍රියාවට නැංවීමට සමාන වේ, නමුත් Node.js හි සිදුවීම් ලූපය සංවර්ධකයාගෙන් සඟවා ඇති අතර ක්‍රියාත්මක වන වෙබ් යෙදුමක සිදුවීම් හැසිරවීමට සමාන වේ. බ්රවුසරයේ. node.js සඳහා යෙදුම් ලිවීමේදී, ඔබ "var result = db.query("select..");" කිරීම වෙනුවට, සිදුවීම් මත පදනම් වූ වැඩසටහන්කරණයේ විශේෂතා සලකා බැලිය යුතුය. වැඩ නිම කිරීම සහ පසුව ප්රතිඵල සැකසීම සඳහා බලා සිටීමත් සමග, Node.js අසමමුහුර්ත ක්රියාත්මක කිරීමේ මූලධර්මය භාවිතා කරයි, i.e. කේතය "db.query("තෝරන්න..", ශ්‍රිතය (ප්‍රතිඵලය) {ප්‍රතිඵල සැකසීම});" බවට පරිවර්තනය කර ඇත, එහිදී පාලනය ක්‍ෂණිකව වැඩිදුර කේතය වෙත ගමන් කරනු ඇති අතර, දත්ත ලැබෙන විට විමසුම් ප්‍රතිඵලය සැකසෙනු ඇත.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න