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

JavaScript හි ජාල යෙදුම් ක්‍රියාත්මක කිරීමේ වේදිකාවක් වන Node.js 20.0 නිකුත් කිරීම සිදුවී ඇත. Node.js 20.0 දිගු ආධාරක ශාඛාව වෙත පවරා ඇත, නමුත් ස්ථායීකරණයෙන් පසු ඔක්තෝබර් දක්වා මෙම තත්ත්වය පවරනු නොලැබේ. Node.js 20.x 30 අප්‍රේල් 2026 දක්වා සහය දක්වයි. පෙර Node.js 18.x LTS ශාඛාවේ නඩත්තුව 2025 අප්‍රේල් දක්වාත්, පෙර 16.x LTS ශාඛාව 2023 සැප්තැම්බර් දක්වාත් පවතිනු ඇත. 14.x LTS ශාඛාව අප්‍රේල් 30 වන දිනත් Node.js 19.x අතුරු ශාඛාව ජුනි 1 වනදාත් රඳවා තබා ගනු ඇත.

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

  • V8 එන්ජිම Chromium 11.3 හි භාවිතා වන 113 අනුවාදයට යාවත්කාලීන කර ඇත. Chromium 19 එන්ජිම, String.prototype.isWellFormed සහ toWellFormed කාර්යයන් භාවිතා කළ Node.js 107 ශාඛාව හා සසඳන විට වෙනස්කම් වලින්, Array.prototype සහ TypedArray.prototype ක්‍රම, Array සහ TypedArray වස්තු වෙනස් කිරීමේදී පිටපත සමඟ වැඩ කිරීමට, RegExp හි "v" ධජය, ArrayBuffer ප්‍රමාණය වෙනස් කිරීමට සහ SharedArrayBuffer හි ප්‍රමාණය වැඩි කිරීමට සහය, WebAssembly හි tail-call.
  • ක්‍රියාත්මක කිරීමේදී ඇතැම් සම්පත් වෙත ප්‍රවේශය සීමා කිරීමට ඔබට ඉඩ සලසන පර්යේෂණාත්මක අවසර ආදර්ශ යාන්ත්‍රණයක් යෝජනා කෙරේ. ධාවනය වන විට "--පර්යේෂණාත්මක-අවසර" ධජය සඳහන් කිරීමෙන් අවසර මාදිලි සහාය සක්‍රීය කර ඇත. මූලික ක්‍රියාත්මක කිරීමේදී, FS හි ඇතැම් කොටස්, ළමා ක්‍රියාවලි (--අවසර-ළමා-ක්‍රියාවලිය) වෙත ලිවීම සීමා කිරීමට (--fs-write) සහ කියවීමට (--allow-fs-read) විකල්ප යෝජනා කරන ලදී. , add-ons (--no-addons ) සහ නූල් (--allow-worker). උදාහරණයක් ලෙස, /tmp බහලුම වෙත ලිවීමට සහ /home/index.js ගොනුව කියවීමට, ඔබට නියම කළ හැක: node --පරීක්ෂණාත්මක-අවසර --allow-fs-write=/tmp/ --allow-fs-read =/home/index.js දර්ශකය .js

    ප්‍රවේශය පරීක්ෂා කිරීම සඳහා, process.permission.has() ක්‍රමය භාවිතා කිරීමට යෝජනා කෙරේ, උදාහරණයක් ලෙස, "process.permission.has('fs.write',"/tmp/test").

  • "--පරීක්ෂණාත්මක-පූරණය" විකල්පය හරහා පූරණය කරන ලද ECMAScript බාහිර මොඩියුල (ESMs) සඳහා හසුරුවන්නා දැන් ප්‍රධාන නූලෙන් හුදකලා වූ වෙනම නූලකින් ක්‍රියාත්මක වේ, එමඟින් යෙදුම් කේතයේ ඡේදනය සහ පූරණය කරන ලද ESM මොඩියුල ඉවත් කරයි. බ්‍රවුසර වලට සමානව, import.meta.resolve() ක්‍රමය දැන් යෙදුමක් තුලින් ඇමතූ විට සමමුහුර්තව ක්‍රියාත්මක වේ. Node.js හි මීළඟ ශාඛාවකින්, ESM පැටවීමේ සහාය ස්ථාවර විශේෂාංග කාණ්ඩයට ගෙන යාමට සැලසුම් කර ඇත.
  • TAP (Test Anything Protocol) ආකෘතියෙන් ප්‍රතිඵල ලබා දෙන JavaScript පරීක්ෂණ සෑදීමට සහ ක්‍රියාත්මක කිරීමට නිර්මාණය කර ඇති node:test (test_runner) මොඩියුලය, ස්ථාවර වෙත ගෙන ගොස් ඇත.
  • වෙනම කාර්ය සාධන කණ්ඩායමක් පිහිටුවා ඇති අතර, නව ශාඛාව සඳහා සූදානම් වීමේ දී, URL විග්‍රහ කිරීම, ෆෙච්() සහ EventTarget ඇතුළු විවිධ ධාවන කාල සංරචක වේගවත් කිරීමට ක්‍රියා කර ඇත. උදාහරණයක් ලෙස, EventTarget ආරම්භ කිරීමේ පොදු කාර්ය අඩකින් අඩු කර ඇත, URL.canParse() ක්‍රමයේ ක්‍රියාකාරීත්වය සැලකිය යුතු ලෙස වැඩි දියුණු කර ඇත, සහ ටයිමර්වල කාර්යක්ෂමතාවය වැඩි දියුණු කර ඇත. මීට අමතරව, C ++ හි ලියා ඇති ඉහළ කාර්ය සාධන URL විග්‍රහකය - Ada 2.0 නිකුත් කිරීම සංයුතියට ඇතුළත් වේ.
  • තනි ක්‍රියාත්මක කළ හැකි ගොනුවක් (SEA, Single Executable Applications) ආකාරයෙන් යෙදුම් බෙදා හැරීම සඳහා පර්යේෂණාත්මක විශේෂාංගයක් සංවර්ධනය කිරීම දිගටම කරගෙන ගොස් ඇත. දැන් ක්‍රියාත්මක කළ හැකි එකක් සෑදීමට JSON වින්‍යාස ගොනුවකින් ජනනය කරන ලද බ්ලොබ් එකක් ආදේශ කිරීම අවශ්‍ය වේ (ජාවාස්ක්‍රිප්ට් ගොනුවක් ආදේශ කිරීම වෙනුවට).
  • වෙනත් ව්‍යාපෘති වලින් ක්‍රියාත්මක කිරීම් සමඟ වැඩිදියුණු කළ Web Crypto API ගැළපුම.
  • ARM64 පද්ධති මත Windows සඳහා නිල සහාය එක් කරන ලදී.
  • ස්වාධීන WebAssembly යෙදුම් නිර්මාණය කිරීම සඳහා WASI (WebAssembly පද්ධති අතුරුමුහුණත) දිගු සඳහා අඛණ්ඩ සහාය. WASI සහාය සක්‍රීය කිරීම සඳහා විශේෂ විධාන රේඛා ධජයක් නියම කිරීමේ අවශ්‍යතාවය ඉවත් කරන ලදී.

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

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