Server-side JavaScript Node.js 14.0 නිකුතුව

සිදු විය නිකුත්වීම Node.js 14.0,ජාවාස්ක්‍රිප්ට් හි ජාල යෙදුම් ධාවනය සඳහා වේදිකා. Node.js 14.0 යනු දිගු කාලීන ආධාරක ශාඛාවක් වන නමුත්, මෙම තත්ත්වය ස්ථාවර කිරීමෙන් පසුව ඔක්තෝබර් මාසයේදී පවරනු ලැබේ. Node.js 14.0 සඳහා සහය දක්වයි සිදු කිරීමට නියමිතය 2023 අප්රේල් දක්වා. Node.js 12.0 හි පෙර LTS ශාඛාව නඩත්තු කිරීම 2022 අප්‍රේල් දක්වාත්, අවසාන LTS ශාඛාව 10.0 ට පෙර වසර 2021 අප්‍රේල් දක්වාත් පවතිනු ඇත. 13.x වේදිකා ශාඛාව සඳහා වන සහාය මෙම වසරේ ජුනි මාසයේදී අවසන් වේ.

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

  • පියාසර කිරීමේදී හෝ යම් යම් සිදුවීම් සිදු වූ විට උත්පාදනය කිරීමේ හැකියාව ස්ථාවර කර ඇත රෝග විනිශ්චය වාර්තා, බිඳ වැටීම්, කාර්ය සාධනය පිරිහීම, මතක කාන්දුවීම්, අධික CPU භාරය, අනපේක්ෂිත දෝෂ ප්‍රතිදානය වැනි ගැටළු හඳුනා ගැනීමට උපකාර වන සිදුවීම් සංදර්ශනය කරයි.
  • පර්යේෂණාත්මක API සහාය එක් කරන ලදී Async දේශීය ගබඩාව AsyncLocalStorage පන්තිය ක්‍රියාත්මක කිරීමත් සමඟ, ආපසු ඇමතුම් සහ පොරොන්දු මත පදනම්ව හසුරුවන්න සමඟ අසමමුහුර්ත තත්වයක් නිර්මාණය කිරීමට භාවිතා කළ හැක. AsyncLocalStorage ඔබට වෙබ් ඉල්ලීමක් ක්‍රියාවට නංවන අතරතුර දත්ත ගබඩා කිරීමට ඉඩ සලසයි, වෙනත් භාෂාවලින් නූල්-දේශීය ආචයනය සිහිගන්වයි.
  • පූරණය වන විට පර්යේෂණාත්මක විශේෂාංගය පිළිබඳ අනතුරු ඇඟවීමේ පණිවිඩය ඉවත් කරන ලදී මොඩියුල ECMAScript 6 ආනයන සහ අපනයන ප්‍රකාශ භාවිතයෙන් සම්බන්ධ කර අපනයනය කෙරේ. ඒ අතරම, ESM මොඩියුල ක්‍රියාත්මක කිරීම පර්යේෂණාත්මකව පවතී.
  • V8 එන්ජිම අනුවාදයට යාවත්කාලීන කරන ලදී 8.1 (1, 2, 3), නව කාර්ය සාධන ප්‍රශස්තකරණයන් සහ නව තාර්කික සංගත ක්‍රියාකරු "??" වැනි විශේෂාංග ඇතුළත් වේ. (වම් ඔපෙරන්ඩ් NULL හෝ නිර්වචනය නොකළහොත් දකුණු ඔපෙරන්ඩ් ආපසු ලබා දෙයි, සහ අනෙක් අතට), "?." ක්රියාකරු සම්පූර්ණ දේපල හෝ ඇමතුම් දාමයේ එක්-වරක් පරීක්ෂාවක් සඳහා (උදාහරණයක් ලෙස, "db?.user?.name?.length" මූලික චෙක්පත් නොමැතිව), දේශීයකරණය කළ නම් ලබා ගැනීම සඳහා Intl.DisplayName ක්‍රමය, ආදිය.
  • Streams API හි සංශෝධනයක් සිදු කරන ලද අතර, Streams API වල අනුකූලතාව වැඩිදියුණු කිරීම සහ Node.js හි මූලික කොටස්වල හැසිරීම් වල වෙනස්කම් ඉවත් කිරීම අරමුණු කර ගෙන ඇත. උදාහරණයක් ලෙස, http.OutgoingMessage හි හැසිරීම stream.Writable, සහ net.Socket stream.Duplex වලට සමාන වේ. ස්වයංක්‍රීය විනාශ කිරීමේ විකල්පය පෙරනිමියෙන් "සත්‍ය" ලෙස සකසා ඇත, එනම් අවසන් වූ පසු "_destroy" ඇමතීම යන්නයි.
  • පර්යේෂණාත්මක API සහාය එක් කරන ලදී මම එහෙමද (WebAssembly පද්ධති අතුරුමුහුණත), මෙහෙයුම් පද්ධතිය සමඟ සෘජු අන්තර්ක්‍රියා සඳහා මෘදුකාංග අතුරුමුහුණත් සැපයීම (ගොනු, සොකට්, ආදිය සමඟ වැඩ කිරීම සඳහා POSIX API).
  • සඳහා අවශ්‍යතා වැඩි කර ඇත අවම අනුවාද සම්පාදක සහ වේදිකා: macOS 10.13 (High Sierra), GCC 6, වින්ඩෝස් නවතම 7/2008R2.

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, සහ select ඇතුළත් වේ. බහුවිධ සම්බන්ධතා සඳහා පුස්තකාලය භාවිතා වේ libuv, අවසන් වූ උපරිව්‍යුහයකි libv Unix පද්ධති මත සහ Windows මත IOCP හරහා. නූල් සංචිතයක් නිර්මාණය කිරීම සඳහා පුස්තකාලයක් භාවිතා කරයි libeio, අවහිර නොවන ආකාරයෙන් DNS විමසුම් සිදු කිරීම සඳහා ඒකාබද්ධ වේ c-ares. අවහිර වීමට හේතු වන සියලුම පද්ධති ඇමතුම් නූල් සංචිතය තුළ ක්‍රියාත්මක වන අතර පසුව, සංඥා හසුරුවන්නා මෙන්, ඔවුන්ගේ කාර්යයේ ප්‍රතිඵලය නම් නොකළ පයිප්පයක් හරහා ආපසු ලබා දෙයි. ජාවාස්ක්‍රිප්ට් කේතය ක්‍රියාත්මක කිරීම ගූගල් විසින් සංවර්ධනය කරන ලද එන්ජිමක් භාවිතයෙන් සහතික කෙරේ V8 (මීට අමතරව, Microsoft සමාගම Chakra-Core එන්ජිම සමඟ Node.js අනුවාදයක් සංවර්ධනය කරයි).

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

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

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