Node.js භාවිතා කරන්නේ කවදාද යන්න තීරණය කරන්නේ කෙසේද?


2195

මම මේ ආකාරයේ දේවල් වලට අලුත් ය, නමුත් මෑතකදී මම Node.js කොතරම් හොඳද යන්න ගැන බොහෝ දේ අසා ඇත්තෙමි . පොදුවේ jQuery සහ JavaScript සමඟ වැඩ කිරීමට මා කොතරම් ප්‍රිය කරනවාද යන්න සලකා බැලීමේදී, Node.js භාවිතා කරන්නේ කවදාද යන්න තීරණය කරන්නේ කෙසේදැයි මට කල්පනා කළ නොහැක. මගේ මතකයේ ඇති වෙබ් යෙදුම බිට්ලි වැනි දෙයක් - යම් අන්තර්ගතයක් ගෙන එය සංරක්ෂණය කරයි.

පසුගිය දින කිහිපය තුළ මා කරමින් සිටි සියලුම ගෙදර වැඩ වලින් මම පහත තොරතුරු ලබා ගතිමි. Node.js

  • සාමාන්‍ය වෙබ් සේවාදායකයක් ලෙස ක්‍රියාත්මක කළ හැකි විධාන රේඛා මෙවලමක් වන අතර එක් ජාවාස්ක්‍රිප්ට් වැඩසටහන් ක්‍රියාත්මක කිරීමට ඉඩ දෙයි
  • විශිෂ්ට V8 ජාවාස්ක්‍රිප්ට් එන්ජිම භාවිතා කරයි
  • ඔබට එකවර දේවල් කිහිපයක් කිරීමට අවශ්‍ය වූ විට එය ඉතා හොඳයි
  • සිදුවීම් මත පදනම් වූ නිසා සර්වබලධාරී අජැක්ස් වැනි සියලු දේ සේවාදායකයාගේ පැත්තෙන් කළ හැකිය
  • බ්‍රව්සරය සහ පසුබිම අතර කේතය බෙදා ගැනීමට අපට ඉඩ දෙයි
  • අපට MySQL සමඟ කතා කිරීමට ඉඩ දෙයි

මා හමු වූ සමහර ප්‍රභවයන් නම්:

ඇමසන් හි ඊසී 2 අවස්ථාවන්හිදී Node.js බොහෝ දුරට ක්‍රියාත්මක කළ හැකි බව සලකන විට, PHP , Python සහ Ruby වැනි බලවත් රජවරුන්ට වඩා Node.js අවශ්‍ය වන්නේ කුමන ආකාරයේ ගැටලු දැයි තේරුම් ගැනීමට මම උත්සාහ කරමි. . එය ඇත්ත වශයෙන්ම රඳා පවතින්නේ භාෂාවක් පිළිබඳ විශේෂ expert තාව මත බව මට වැටහී ඇත, නමුත් මගේ ප්‍රශ්නය වඩාත් පොදු කාණ්ඩයට අයත් වේ: විශේෂිත රාමුවක් භාවිතා කරන්නේ කවදාද සහ එය කුමන ආකාරයේ ගැටළු සඳහා විශේෂයෙන් ගැලපේද?


4
මෙම ප්‍රශ්නය මෙටා ( meta.stackoverflow.com/q/332386/497418 ) පිළිබඳ සාකච්ඡා කෙරෙමින් පවතී .
zzzzBov

Answers:


1355

ඔබ Node.js හි ඇති භයානක දේ සාරාංශ කිරීමේ විශාල කාර්යයක් කළා. මගේ හැඟීම නම්, බ්‍රවුසරයේ සිට සේවාදායකය වෙත නිරන්තර සම්බන්ධතාවයක් පවත්වා ගැනීමට ඔබ කැමති යෙදුම් සඳහා Node.js විශේෂයෙන් ගැලපේ. "දිගු ඡන්දය" යනුවෙන් හැඳින්වෙන තාක්ෂණයක් භාවිතා කරමින් , ඔබට පරිශීලකයාට යාවත්කාලීන කිරීම් යවන වේලාවක යෙදුමක් ලිවිය හැකිය. රූබි ඔන් රේල්ස් හෝ ජැන්ගෝ වැනි වෙබයේ දැවැන්තයින් බොහෝ දෙනෙකුට දිගු ඡන්ද විමසීමක් කිරීමෙන් සේවාදායකය මත විශාල බරක් පැටවෙනු ඇත, මන්ද සෑම ක්‍රියාකාරී සේවාදායකයෙක්ම එක් සේවාදායක ක්‍රියාවලියක් අනුභව කරයි. මෙම තත්වය තාර ප්‍රහාරයකට සමාන වේ. ඔබ Node.js වැනි දෙයක් භාවිතා කරන විට, සෑම විවෘත සම්බන්ධතාවයක් සඳහාම වෙනම නූල් නඩත්තු කිරීමේ අවශ්‍යතාවයක් සේවාදායකයාට නොමැත.

මෙයින් අදහස් කරන්නේ ඔබට බොහෝ සේවාදායකයින්ට සේවය කිරීම සඳහා පද්ධති සම්පත් නොමැති වන Node.js හි බ්‍රව්සරය පදනම් කරගත් චැට් යෙදුමක් නිර්මාණය කළ හැකි බවයි. ඔබට මෙවැනි දිගු ඡන්ද විමසීමක් කිරීමට අවශ්‍ය ඕනෑම වේලාවක, Node.js හොඳ විකල්පයකි.

රූබි සහ පයිතන් යන දෙදෙනාම මේ ආකාරයේ දේවල් කිරීමට මෙවලම් ඇති බව සඳහන් කිරීම වටී ( පිළිවෙලින් සිදුවීම් මැෂින් සහ විකෘති ), නමුත් Node.js එය සුවිශේෂී ලෙස හොඳින් කරන අතර බිම් මට්ටමේ සිට ඉහළට. ජාවාස්ක්‍රිප්ට් සුවිශේෂී ලෙස කෝල්බැක් මත පදනම් වූ සමගාමී මුදල් ආකෘතියකට පිහිටා ඇති අතර එය මෙහි විශිෂ්ටයි. එසේම, සේවාදායකයා සහ සේවාදායකයා යන දෙකටම JSON ස්වදේශිකයා සමඟ අනුක්‍රමිකව හා ආශ්‍රිතකරණය කිරීමට හැකිවීම ඉතා අල්පය.

මෙහි වෙනත් පිළිතුරු කියවීමට මම බලාපොරොත්තු වෙමි, මෙය අපූරු ප්‍රශ්නයකි.

සේවාදායකයා / සේවාදායක පරතරය හරහා ඔබ බොහෝ කේත නැවත භාවිතා කරන අවස්ථා සඳහා Node.js ද විශිෂ්ට බව පෙන්වා දීම වටී. මෙම Meteor රාමුව මේ ඇත්තටම පහසු කරයි, සහ ජනතාවට දැනෙන ගොඩක් මෙම වෙබ් සංවර්ධනය අනාගතය කෙබඳු විය හැකි ද යෝජනා කර ඇත. මට අත්දැකීමෙන් කිව හැක්කේ උල්කාපාතයේ කේත ලිවීම විනෝදයක් වන අතර, මෙයින් විශාල කොටසක් ඔබ ඔබේ දත්ත ප්‍රතිව්‍යුහගත කරන්නේ කෙසේද යන්න ගැන සිතීමට අඩු කාලයක් වැය කරයි, එබැවින් බ්‍රව්සරයේ ක්‍රියාත්මක වන කේතය පහසුවෙන් කළ හැකිය එය හසුරුවා ආපසු හරවන්න.

මෙන්න පිරමීඩය සහ දිගු ඡන්දය ප්‍රකාශ කිරීම පිළිබඳ ලිපියක්, එය ජෙවෙන්ට් වෙතින් කුඩා උදව්වක් සමඟ සැකසීමට ඉතා පහසු බව පෙනේ: ටික්ටැක්ටෝ සහ පිරමිඩ් සමඟ දිගු ඡන්දය දීම .


12
ඔව්, බ්‍රව්සරයේ සිට සේවාදායකයට නිරන්තර සම්බන්ධතාවයක් අවශ්‍ය වන යෙදුම් සඳහා 'node.js විශේෂයෙන් සුදුසු යැයි සිතීම ඉතා වැදගත් යැයි මම සිතමි. - චැට් වැඩසටහන් හෝ අන්තර්ක්‍රියාකාරී ක්‍රීඩා වැනි 'යමෙකු පරිශීලක / සේවාදායක සන්නිවේදනය අවශ්‍ය නොවන යෙදුමක් ගොඩනඟන්නේ නම්, වෙනත් රාමු සමඟ සංවර්ධනය කිරීම ඉතා හොඳ වන අතර ඊට වඩා අඩු කාලයක් ගතවනු ඇත.
user482594

1
මේ සඳහා ස්තූතියි ... විශිෂ් Q Q සහ A ;-) වෙනස් හා කිහිපයකින් වඩා ඉදිරිපස හා
පසුගාමී

12
දිගු ඡන්දය භාවිතා කරන්නේ ඇයි? අනාගතයට සහ සොකට් වලට සිදු වූයේ කුමක්ද?
hitautodestruct

1
මගේ කෙටි පිළිතුර පසුබිම් ක්‍රියාවලියයි. ඉල්ලීම සහ ප්‍රතිචාරය (විවේක API ඇතුළුව) සියල්ල වෙනත් භාෂාවක් සහ සේවාදායකයක් සමඟ ලබා ගත හැකිය. එබැවින් ඔවුන්ගේ වෙබ් ව්‍යාපෘති නෝඩ් බවට පරිවර්තනය කිරීමට සිතන අයට. නැවත එකම දේ සිතන්න! ඉමාප් සහිත ඊමේල් කියවීම, රූප සැකසීම, වලාකුළු වෙත ලිපිගොනු උඩුගත කිරීම හෝ බොහෝ දුරට සිදුවීම් නැඹුරු වූ දිගු හෝ කිසිදා නිම නොවන ක්‍රියාවලියක් වැනි පසුබිම් ක්‍රියාවලියක් ලෙස නෝඩ් භාවිතා කරන්න ...
විකාස්

409

තථ්‍ය කාලීන යෙදුම් සඳහා Node.js වඩාත් සුදුසු යැයි මම විශ්වාස කරමි: සබැඳි ක්‍රීඩා, සහයෝගීතා මෙවලම්, චැට් රූම්, හෝ යෙදුම සමඟ එක් පරිශීලකයෙකු (හෝ රොබෝ? හෝ සංවේදකය?) කරන ඕනෑම දෙයක් වෙනත් පරිශීලකයින්ට වහාම දැකිය යුතුය, පිටු නැවුම්බවක් නොමැතිව.

Socket.IO, Node.js සමඟ එක්ව දිගු කාලීන ඡන්ද විමසීම් වලදී කළ හැකි දේට වඩා ඔබේ තත්‍ය කාලීන ප්‍රමාදය අඩු කරන බව මම සඳහන් කළ යුතුය. Socket.IO නරකම අවස්ථාව ලෙස දිගු ඡන්ද විමසීම් වලට වැටෙනු ඇති අතර, ඒ වෙනුවට වෙබ් සොකට් හෝ ෆ්ලෑෂ් භාවිතා කරන්න.

නමුත් නූල් නිසා කේතය අවහිර විය හැකි ඕනෑම තත්වයක් ගැන Node.js සමඟ වඩා හොඳින් ආමන්ත්‍රණය කළ හැකි බව ද සඳහන් කළ යුතුය. හෝ ඔබට සිදුවීම මෙහෙයවීම සඳහා යෙදුම අවශ්‍ය ඕනෑම තත්වයක්.

එසේම, රයන් ඩෝල් කතාවක දී පැවසුවේ මා වරක් සහභාගී වූ බව ය. Node.js මිණුම් සලකුණු නිතිපතා පැරණි HTTP ඉල්ලීම් සඳහා Nginx සමඟ සමීපව තරඟ කරයි. එබැවින් අපි Node.js සමඟ ගොඩනඟන්නේ නම්, අපට අපගේ සාමාන්‍ය සම්පත් තරමක් effectively ලදායී ලෙස සේවය කළ හැකි අතර, අපට සිදුවීම් මත පදනම් වූ දේවල් අවශ්‍ය වූ විට, එය හැසිරවීමට සූදානම්ය.

ප්ලස් ඒ සියල්ලම ජාවාස්ක්‍රිප්ට් ය. ලින්ගුවා ෆ්‍රැන්කා මුළු තොගයේම.


17
.Net සහ Node අතර මාරු වන අයෙකුගේ නිරීක්ෂණයක්, සන්දර්භය මාරු කිරීමේදී පද්ධතියේ විවිධ ක්ෂේත්‍ර සඳහා විවිධ භාෂා විශාල වශයෙන් උපකාරී වේ. මම ජාවාස්ක්‍රිප්ට් දෙස බලන විට, මම සේවාදායකයා තුළ වැඩ කරමි, සී # යන්නෙන් අදහස් කරන්නේ යෙදුම් සේවාදායකය, SQL = දත්ත සමුදායයි. ජාවාස්ක්‍රිප්ට් හි වැඩ කරන විට, මම ස්ථර ව්‍යාකූල කර ඇති බවක් හෝ සන්දර්භය මාරු කිරීමට වැඩි කාලයක් ගතවන බව මට පෙනී ගියේය. මෙය බොහෝ විට .NET තොගයේ වැඩ කිරීම සහ රාත්‍රියේ නෝඩින් කිරීම වැඩ කරන පුරාවස්තුවක් විය හැකි නමුත් එය වෙනසක් ඇති කරයි.
මයිකල් බ්ලැක්බර්න්

9
ප්‍රධාන ධාරාව සහ ස්වදේශික සංස්කෘතීන් අතර චලනය වන විට හරස් සංස්කෘතික පුද්ගලයන් උපභාෂා මාරු කිරීමේ පුරුද්ද “කේත මාරුව” ලෙස හැඳින්වීම සිත්ගන්නා කරුණකි.
මයිකල් බ්ලැක්බර්න්

1
අනෙක් දවසේ මම කල්පනා කරමින් සිටියේ මගේ විවිධ .jsලිපිගොනු වලට කෙසේ හෝ විවිධ වර්ණ ලබා දීම ගැන කෙසේ සිතිය හැකිද යන්නයි . සේවාදායකයාගේ පැත්තට කොළ, සේවාදායක පැත්තට නිල්. මම දිගටම "අතරමං" වෙනවා.
AJB

209

NodeJS භාවිතා කිරීමට හේතු:

  • එය ජාවාස්ක්‍රිප්ට් ධාවනය කරයි, එබැවින් ඔබට සේවාදායකයේ සහ සේවාදායකයාගේ එකම භාෂාව භාවිතා කළ හැකි අතර ඒවා අතර යම් කේතයක් පවා බෙදා ගත හැකිය (උදා: ආකෘති වලංගු කිරීම සඳහා, හෝ දෙපසම අදහස් දැක්වීමට.)

  • මෙම තනි-පොටවල් අවස්ථාවට මෙහෙයවෙන පද්ධතිය වේගයෙන් එකවර ඉල්ලීම් ගොඩක් හැසිරවීමේ විට පවා ද සරල, සාම්ප්රදායික බහු-පිලිතුරු පොටවල් සාපේක්ෂව, සහ ජාවා හෝ ROR රාමුව.

  • සේවාදායකයා සහ සේවාදායක පාර්ශවීය පුස්තකාල / මොඩියුල මෙන්ම වෙබ් සංවර්ධනය සඳහා විධාන රේඛා මෙවලම් ද ඇතුළුව එන්පීඑම් හරහා ප්‍රවේශ විය හැකි පැකේජ සංචිතය . මේවායින් බොහොමයක් පහසුවෙන් ගිතුබ් හි සත්කාරකත්වය දරනු ලැබේ, සමහර විට ඔබට ගැටළුවක් වාර්තා කර පැය කිහිපයක් ඇතුළත එය නිරාකරණය කර ගත හැකිය! ප්‍රමිතිගත ගැටළු වාර්තා කිරීම සහ පහසු දෙබලකින් යුතුව සෑම දෙයක්ම එකම වහලක් යට තබා තිබීම සතුටක්.

  • එය ජාවාස්ක්‍රිප්ට් ආශ්‍රිත මෙවලම් සහ කාර්යයන් සම්බන්ධ කරන්නන්, මිනිෆයර්, රූපලාවණ්‍ය, ලයිනර්, පෙර සැකසුම්, බණ්ඩලර් සහ විශ්ලේෂණ ප්‍රොසෙසර ඇතුළු වෙනත් වෙබ් ආශ්‍රිත මෙවලම් ක්‍රියාත්මක කිරීමේ ඩෙෆැක්ටෝ සම්මත පරිසරය බවට පත්ව ඇත .

  • මූලාකෘතිකරණය, කඩිනම් සංවර්ධනය සහ වේගවත් නිෂ්පාදන පුනරාවර්තනය සඳහා එය බෙහෙවින් සුදුසු බව පෙනේ .

NodeJS භාවිතා නොකිරීමට හේතු :

  • එය ජාවාස්ක්‍රිප්ට් ධාවනය කරයි, එය සම්පාදක කාල වර්ගයේ පරීක්ෂාවක් නොමැත. විශාල, සංකීර්ණ ආරක්‍ෂිත-විවේචනාත්මක පද්ධති හෝ විවිධ සංවිධාන අතර සහයෝගීතාව ඇතුළු ව්‍යාපෘති සඳහා, ගිවිසුම්ගත අතුරුමුහුණත් දිරිගන්වන සහ ස්ථිතික ආකාරයේ පරීක්ෂාවන් සපයන භාෂාවක් මඟින් දිගු කාලීනව නිදොස් කිරීමේ කාලය (සහ පිපිරීම් ) ඉතිරි කර ගත හැකිය . (ජේවීඑම් සමඟ සිරවී සිටියද nullකරුණාකර ඔබේ න්‍යෂ්ටික ප්‍රතික්‍රියාකාරක සඳහා හස්කල් භාවිතා කරන්න.)

  • ඊට අමතරව, එන්පීඑම් හි බොහෝ පැකේජ ටිකක් අමුයි , තවමත් වේගයෙන් සංවර්ධනය වෙමින් පවතී. පැරණි රාමු සඳහා සමහර පුස්තකාල දශකයක පරීක්ෂාවට හා දෝෂ නිරාකරණයකට භාජනය වී ඇති අතර මේ වන විට එය ඉතා ස්ථාවර මට්ටමක පවතී. Npmjs.org හි පැකේජ ශ්‍රේණිගත කිරීමේ යාන්ත්‍රණයක් නොමැති අතර එමඟින් එකම දේ වැඩි හෝ අඩු වශයෙන් කරන පැකේජවල ව්‍යාප්තියට තුඩු දී ඇති අතර එයින් විශාල ප්‍රතිශතයක් තවදුරටත් නඩත්තු නොකෙරේ.

  • කැදැල්ල නැවත කැඳවීම නිරය. (ඇත්ත වශයෙන්ම මේ සඳහා විවිධ විසඳුම් 20 ක් ඇත ...)

  • දිනෙන් දින වර්ධනය වන පැකේජ සංචිතයට එක් NodeJS ව්‍යාපෘතියක් ඊළඟට වඩා රැඩිකල් ලෙස වෙනස් විය හැකිය. ලබා ගත හැකි විශාල විකල්පයන් නිසා (උදා: එක්ස්ප්‍රස් / සේල්ස්.ජේ / උල්කාපාත / ඩර්බි ) ක්‍රියාත්මක කිරීමේදී විශාල විවිධත්වයක් ඇත . මෙය සමහර විට නව සංවර්ධකයෙකුට නෝඩ් ව්‍යාපෘතියකට පිවිසීම දුෂ්කර කරයි. සමඟ බව වෙනස් කළ රේල් පීලි සියලු රේල් පීලි යෙදුම් භාවිත කිරීමට උනන්දු කරනු ලැබේ නිසා ඔහු ලස්සන ඉක්මනින් යෙදුම සමග හුරු පුරුදු ලබා ගැනීමට හැකි විය යුතුය: සංවර්ධක දැනට පවතින ව්යාපෘතිය සම්බන්ධ සමාන ව්යුහයක් .

  • ලිපිගොනු සමඟ කටයුතු කිරීම ටිකක් වේදනාවක් විය හැකිය. පෙළ ගොනුවකින් පේළියක් කියවීම වැනි වෙනත් භාෂාවලින් සුළුපටු දේවල්, Node.js සමඟ කිරීමට තරම් අමුතුයි , ඒ පිළිබඳව 80+ උඩුකුරු සමඟ StackOverflow ප්‍රශ්නයක් තිබේ. තියෙනවා CSV ගොනුවක් සිට වරකට එක් වාර්තාවක් කියවීමට කිසිදු සරල ක්රමයක් . ආදිය.

මම NodeJS වලට ආදරෙයි, එය වේගවත් හා වල් හා විනෝදජනකයි, නමුත් ඔප්පු කළ හැකි-නිවැරදිතාවය කෙරෙහි එතරම් උනන්දුවක් නැති බව මම සැලකිලිමත් වෙමි. අවසානයේදී ලෝක දෙකෙහිම හොඳම දේ ඒකාබද්ධ කිරීමට අපට හැකි වේ යැයි අපි ප්‍රාර්ථනා කරමු. අනාගතයේදී නෝඩ් වෙනුවට කුමක් වනු ඇත්දැයි බැලීමට මම මහත් උනන්දුවෙන් සිටිමි ... :)


1
ඔව්, මම හිතන්නේ ඔවුන්ට එම ගැටලුව විසඳිය හැකි යැයි මම සිතමි, කෙසේ වෙතත් ඔබ ටයිප්සෙෆ් භාෂාවලින් ලියා ඇති පුස්තකාල පමණක් භාවිතා කිරීමට පමණක් සීමා විය යුතුය , නැතහොත් ඔබේ කේතපදය සියල්ලම සංඛ්‍යාත්මකව ටයිප් කර නොමැති බව පිළිගත යුතුය . නමුත් එක් තර්කයක් මෙසේ ය: භාෂාව නොසලකා ඔබේ කේතය සඳහා හොඳ පරීක්ෂණ ලිවිය යුතු බැවින්, ගතිකව ටයිප් කළ කේත සඳහා පවා ඔබේ විශ්වාසනීය මට්ටම සමාන විය යුතුය . අප එම තර්කය පිළිගන්නේ නම්, ශක්තිමත් ටයිප් කිරීමේ වාසි, සංවර්ධනය, නිදොස්කරණය කිරීමේ කාලය, ඔප්පු කිරීමේ හැකියාව සහ ප්‍රශස්තකරණයට සහාය වීම දක්වා අඩු වේ .
joeytwiddle

1
erv සර්වින්, සමහර මිණුම් සලකුණු විශිෂ්ට වනු ඇතැයි මම එකඟ වෙමි, නමුත් මට සබැඳිව සොයාගත හැකි දේ ගැන මම කලකිරී සිටියෙමි. .NET කාර්ය සාධනය නෝඩ් සමඟ සැසඳිය හැකි යැයි සමහරු තර්ක කරති , නමුත් එය ඔබ සැබවින්ම කරන්නේ කුමක්ද යන්න තීරණාත්මක ය. බොහෝ සමගාමී සම්බන්ධතා සහිත කුඩා පණිවිඩ ලබා දීමේදී නෝඩ් විශිෂ්ට විය හැකි නමුත් අධික ගණිතමය ගණනය කිරීම් සඳහා එතරම් විශාල නොවේ. හොඳ කාර්ය සාධන සංසන්දනයක් සඳහා විවිධ තත්වයන් පරීක්ෂා කිරීම අවශ්‍ය වේ.
joeytwiddle

2
සංකීර්ණ සංකීර්ණ වැඩසටහන් සහ ස්ථිතික යතුරු ලියනය පරීක්ෂා කිරීමේදී ටයිප්ස්ක්‍රිප්ට් වැනි දෑ Node.js වලට උදව් නොකරන්නේද?
CodeMonkey

2
@joeytwiddle එය වටින දේ සඳහා, ඔබට npm පැකේජයක් තවමත් නඩත්තු කර තිබේද නැද්ද යන්න තීරණය කිරීම සඳහා stillmaintained.com භාවිතා කළ හැකිය (බහුතරය ගිතුබ්හි ඇති බැවින්). මීට අමතරව, npm searchසහ npm showඔබ පැකේජයක් අවසන් නිකුත් කරන දිනය පෙන්නුම් කරනු ඇත.
ඩෑන් පැන්ට්රි

3
රේල් පීලි නෝඩ් සමඟ සංසන්දනය කිරීමෙන් ඔබ වේදිකාවක් රාමුවකට පටලවා ගනී. රේල්ස් යනු රූබී සඳහා රාමුවක් වන අතර සේල්ස් සහ උල්කාපාත ජාවාස්ක්‍රිප්ට් සඳහා රාමු වේ.
බොන්සායි ඕක්

206

එය කෙටි කිරීමට:

සමගාමී සම්බන්ධතා රාශියක් ඇති යෙදුම් සඳහා Node.js හොඳින් ගැලපෙන අතර සෑම ඉල්ලීමකටම අවශ්‍ය වන්නේ ඉතා සුළු CPU චක්‍රයක් පමණි, මන්ද ශ්‍රිතයක් ක්‍රියාත්මක කිරීමේදී සිදුවීම් ලූපය (අනෙක් සියලුම සේවාදායකයින් සමඟ) අවහිර කර ඇත.

Node.js හි සිදුවීම් ලූපය පිළිබඳ හොඳ ලිපියක් වන්නේ මික්සුගේ තාක්ෂණික බ්ලොග් අඩවියයි: node.js සිදුවීම් ලූපය අවබෝධ කර ගැනීම .


127

මට Node.js භාවිතා කළ එක් සැබෑ ලෝක උදාහරණයක් තිබේ. මා සේවය කරන සමාගමට සරල ස්ථිතික HTML වෙබ් අඩවියක් ලබා ගැනීමට අවශ්‍ය එක් සේවාදායකයෙක් ලැබුණි. මෙම වෙබ් අඩවිය පේපෑල් භාවිතයෙන් එක් අයිතමයක් විකිණීම සඳහා වන අතර සේවාදායකයාට විකුණන ලද භාණ්ඩ ප්‍රමාණය පෙන්වන කවුන්ටරයක් ​​තබා ගැනීමට අවශ්‍ය විය. සේවාදායකයාට මෙම වෙබ් අඩවියට විශාල අමුත්තන් පැමිණෙනු ඇතැයි අපේක්ෂා කෙරේ. Node.js සහ Express.js රාමුව භාවිතයෙන් කවුන්ටරය සෑදීමට මම තීරණය කළෙමි .

Node.js යෙදුම සරල විය. විකුණන ලද අයිතම ප්‍රමාණය රෙඩිස් දත්ත ගබඩාවකින් ලබා ගන්න, අයිතමය විකුණන විට කවුන්ටරය වැඩි කරන්න සහ ඒපීඅයි හරහා පරිශීලකයින්ට ප්‍රති වටිනාකමට සේවය කරන්න .

මෙම අවස්ථාවේදී මම Node.js භාවිතා කිරීමට තෝරා ගැනීමට හේතු කිහිපයක්

  1. එය ඉතා සැහැල්ලු හා වේගවත් ය. සති තුනක් තුළ මෙම වෙබ් අඩවියට 200000 කට අධික වාර ගණනක් පැමිණ ඇති අතර අවම සේවාදායක සම්පත් ඒ සියල්ල හැසිරවීමට සමත් වී තිබේ.
  2. කවුන්ටරය තථ්‍ය කාලය බවට පත් කිරීම සැබවින්ම පහසුය.
  3. Node.js වින්‍යාස කිරීමට පහසු විය.
  4. මොඩියුල විශාල ප්‍රමාණයක් නොමිලේ ලබා ගත හැකිය. උදාහරණයක් ලෙස, මම පේපෑල් සඳහා Node.js මොඩියුලයක් සොයා ගතිමි.

මෙම අවස්ථාවේ දී, Node.js නියම තේරීමක් විය.


7
ඔබ එවැනි දෙයක් සත්කාර කරන්නේ කෙසේද? එවිට ඔබට නිෂ්පාදන සේවාදායකයේ nodejs සැකසිය යුතුද? ලිනක්ස් වලද?
මිගෙල් ස්ටීවන්ස්

1
නෝඩ්ජිට්සු සහ හෙරොකු වැනි පාස් කිහිපයක් තිබේ. නැතහොත් ඔබට ඇත්ත වශයෙන්ම ඇමසන් ec2 වෙතින් ලිනක්ස් පෙට්ටියක nodejs සැකසිය හැකිය. බලන්න: lauradhamilton.com/…
තරුණ

13
තත්පර 1,814,400 ක් තුළ සංචාර 200,000 ක්. කිසිසේත්ම අදාළ නොවේ. බෑෂ් පවා මන්දගාමී සේවාදායකයේ බොහෝ ඉල්ලීම් ඉටු කළ හැකිය. සීරීම් සේවාදායකය. මන්දගාමී වී.එම්.
ටයිබීරියූ-අයෝනු ස්ටැන්

105

ඔබගේ ඊළඟ ව්‍යාපෘතිය නෝඩ් භාවිතයෙන් ආරම්භ කිරීමට වඩාත්ම වැදගත් හේතු ...

  • සියලුම සිසිල් මෝඩයෝ ඒ තුළට ... ඒ නිසා එය විනෝදජනක විය යුතුය.
  • ඔබට සිසිලන යන්ත්‍රයේ Hangout කළ හැකි අතර පුරසාරම් දෙඩීමට Node වික්‍රමාන්විතයන් රාශියක් ඇත.
  • වලාකුළු සත්කාරක පිරිවැය සම්බන්ධයෙන් ඔබ සතයක් වත්.
  • රේල්ස් සමඟ එය සිදු කර ඇත
  • ඔබ IIS යෙදවීම පිළිකුල් කරයි
  • ඔබගේ පැරණි තොරතුරු තාක්ෂණ රැකියාව තරමක් අඳුරු වෙමින් පවතින අතර ඔබ දිදුලන නව ආරම්භයක් ලබා ගැනීමට කැමති නම්.

අපේක්ෂා කළ යුතු දේ ...

  • ඔබට කිසි විටෙකත් අවශ්‍ය නොවන සියලුම සේවාදායක බ්ලොට්වෙයාර් නොමැතිව එක්ස්ප්‍රස් සමඟ ඔබට ආරක්ෂිත සහ ආරක්ෂිත බවක් දැනෙනු ඇත.
  • රොකට්ටුවක් මෙන් දුව ගොස් හොඳින් පරිමාණය කරයි.
  • ඔබ එය සිහින දකිනවා. ඔබ එය ස්ථාපනය කර ඇත. නෝඩ් පැකේජය repo npmjs.org යනු ලොව විවෘත මූලාශ්‍ර පුස්තකාලවල විශාලතම පරිසර පද්ධතියයි.
  • ඔබේ මොළය කැදැලි ඇමතුම් ලබා ගන්නා දේශයේ කාලය ගත කරයි ...
  • ... ඔබේ පොරොන්දු ඉටු කිරීමට ඔබ ඉගෙන ගන්නා තුරු .
  • අනුක්‍රමික සහ විදේශ ගමන් බලපත්‍රය ඔබගේ නව API මිතුරන් වේ.
  • බොහෝ විට අසින්ක් කේතය නිදොස් කිරීම උම් ... සිත්ගන්නාසුළු වනු ඇත .
  • සියලුම නෝඩර්වරුන්ට යතුරු ලියනය ප්‍රගුණ කිරීමට කාලයයි .

එය භාවිතා කරන්නේ කවුද?


18
ඔව්, මට මෙම ප්‍රශ්නයට සාම්ප්‍රදායික ආකාරයෙන් පිළිතුරු දිය හැකිව තිබුණි. මම හිතන්නේ මම එසේ කිරීමට සුදුසුකම් ඇති නමුත් එය බොහෝමයක් දැනටමත් පවසා ඇති අතර සැහැල්ලු හදවතක් ඇති විනෝදයක් ඒකාකාරී බව බිඳ දමනු ඇතැයි මම සිතුවෙමි. මම නිතරම වෙනත් ප්‍රශ්න සඳහා තාක්ෂණික පිළිතුරු සපයමි.
ටෝනි ඕ හගන්

1
අසින්ක් කේතය සඳහා ES6 උත්පාදක යන්ත්ර භාවිතා කිරීමෙන් කැදැලි ඇමතුම් වළක්වා ගත හැකිය
refactor

1
LeCleanCrispCode: ඔව් ඇත්තෙන්ම! ES6 විසින් C # ශෛලිය අනුගමනය කර ඇත async/ awaitඑබැවින් දැන් අපට සාම්ප්‍රදායික try/ සඳහා සහය දක්වන වඩා පිරිසිදු අසින්ක් නෝඩ් කේතයක් පෙරළා දැමිය හැකිය catch. 2016/17 දී JS කෝඩරයන් ES6 වෙත මාරු වේ.
ටෝනි ඕ හගන්

1
දස දහස් වාරයක් මෙය "ඔබට කිසි විටෙකත් අවශ්‍ය නොවන සියලුම සේවාදායක බ්ලොට්වෙයාර් නොමැතිව එක්ස්ප්‍රස් සමඟ ආරක්ෂිත සහ සුරක්ෂිත බවක් ඔබට දැනෙනු ඇත"
සිමෝන් පෝගි

60

රිදී උණ්ඩය වැනි කිසිවක් නැත. සෑම දෙයක්ම පැමිණෙන්නේ ඒ හා සම්බන්ධ යම් පිරිවැයක් සමඟිනි. එය හරියට ඔබ තෙල් සහිත ආහාර අනුභව කරන්නේ නම්, ඔබ ඔබේ සෞඛ්‍යය අඩපණ කරනු ඇති අතර සෞඛ්‍ය සම්පන්න ආහාර තෙල් සහිත ආහාර වැනි කුළුබඩු සමඟ නොපැමිණේ. ඔවුන්ගේ ආහාරවල මෙන් සෞඛ්‍ය හෝ කුළුබඩු අවශ්‍යද යන්න තනි තේරීමකි. විශේෂිත අවස්ථා වලදී Node.js භාවිතා කිරීමට සලකන ආකාරයටම. ඔබගේ යෙදුම එම තත්වයට නොගැලපේ නම්, එය ඔබගේ යෙදුම් සංවර්ධනය සඳහා නොසැලකිය යුතුය. මම මගේ සිතුවිල්ලම ඒ මත තබමි.

Node.JS භාවිතා කළ යුත්තේ කවදාද?

  1. ඔබේ සේවාදායක පැත්තේ කේතයට cpu චක්‍ර කිහිපයක් අවශ්‍ය නම්. වෙනත් ලෝකයක ඔබ අවහිර නොකිරීමේ මෙහෙයුමක් කරන අතර අධික ඇල්ගොරිතම / ජොබ් නොමැති අතර එය CPU චක්‍ර විශාල ප්‍රමාණයක් පරිභෝජනය කරයි.
  2. ඔබ ජාවාස්ක්‍රිප්ට් පසුබිමේ සිට පැමිණ සේවාදායකයාගේ පැත්තෙන් මෙන් තනි නූල් කේතයක් ලිවීමට පහසු නම්.

Node.JS භාවිතා නොකරන විට

  1. ඔබගේ සේවාදායක ඉල්ලීම අධික CPU පරිභෝජනය කරන ඇල්ගොරිතම / රැකියාව මත රඳා පවතී.

Node.JS සමඟ පරිමාණය සලකා බැලීම

  1. Node.JS විසින්ම යටින් පවතින පද්ධතියේ සියලුම හරයන් භාවිතා නොකරන අතර එය පෙරනිමියෙන් තනි නූල් කර ඇත, බහු හර ප්‍රොසෙසරය භාවිතා කර එය බහු නූල් බවට පත් කිරීම සඳහා ඔබ විසින්ම තර්කනය ලිවිය යුතුය.

Node.JS විකල්ප

Node.JS වෙනුවට වෙනත් විකල්පයක් භාවිතා කළ හැකි නමුත් Vert.x ඉතා හොඳ බලාපොරොත්තුවක් ඇති අතර බහුඅස්රයන් සහ වඩා හොඳ පරිමාණයන් සලකා බැලීම වැනි අමතර විශේෂාංග රාශියක් ඇත.


24
"ඔබේ සේවාදායක පාර්ශවයේ ඉල්ලීමට ගොනු IO හෝ සොකට් අයිඕ වැනි අවහිර කිරීම් ඇතුළත් වන්නේ නම්" "භාවිතා නොකරන විට" ලැයිස්තුගත කර ඇති ආකාරය ගැන මට විශ්වාස නැත. මගේ අවබෝධය නිවැරදි නම්, node.js හි එක් ශක්තියක් නම්, එය අවහිර නොකර IO හැසිරවීමට ප්‍රබල අසමමුහුර්ත මාධ්‍යයන් ඇති බවයි. එබැවින් Node.js IO අවහිර කිරීම සඳහා "ප්‍රතිකාරයක්" ලෙස දැකිය හැකිය.
ඔන්ඩ්‍රෙජ් පීටර්කා

3
NdOndraPeterka: සේවාදායක IO අවහිර කිරීම සඳහා Node.js සුව කළ හැකි බව ඔබ නිවැරදිය, කෙසේ වෙතත් සේවාදායකයේ ඔබගේ ඉල්ලීම් හසුරුවන්නා වෙනත් වෙබ් සේවා / ගොනු ක්‍රියාකාරිත්වයට අවහිර කිරීමේ ඇමතුමක් ලබා දෙන්නේ නම්, Node.js මෙහි උදව් නොකරනු ඇත. එය IO අවහිර නොකිරීම සේවාදායකයට ලැබෙන ඉල්ලීම් සඳහා පමණක් වන අතර ඔබගේ යෙදුම් ඉල්ලීම් හසුරුවන්නාගේ පිටතට යන ඉල්ලීම සඳහා නොවේ.
අජේ තිවාරි

4
nodejs.org හි ajay ඔවුන් පවසන්නේ "අවහිර නොකරන I / O", කරුණාකර ඔබේ "විට නොවන විට" 2 සහ 3 පරීක්ෂා කරන්න.
ඕමාර් අල්-ඉතාවි

5
වත්මන් අනුවාදය සමඟ, නෝඩ් ඇත්ත වශයෙන්ම පොකුරු භාවිතා කරමින් බහු-හර සහය සඳහා සහය දක්වයි. මෙය සැබවින්ම අවම වශයෙන් දෙවරක්වත් Node යෙදුම් ක්‍රියාකාරිත්වය වැඩි කරයි. කෙසේ වෙතත්, මම හිතන්නේ ඔවුන් පොකුරු ලිබ් ස්ථාවර කරන විට කාර්ය සාධනය දෙගුණයකට වඩා වැඩි විය යුතුයි.
Nam Nguyen

4
බර ගණනය කිරීම සඳහා ඔබට node.js භාවිතා කළ හැකිය. භාවිතා කරන්න fork. Stackoverflow.com/questions/9546225/… බලන්න . clusterමොඩියුලය සමඟ නෝඩ් බහු හරයන් ඉතා හොඳින් හසුරුවයි . nodejs.org/api/cluster.html
ජෙස්

41

තවත් ශ්රේෂ්ඨ දෙයක් මම හිතන්නේ Node.js ගැන කිසිවෙකුට සඳහන් කර ඇත පුදුම ප්රජාවට ද, පැකේජ කළමනාකරණ පද්ධතිය (npm) සහ ඔබ හුදෙක් ඔබගේ package.json ගොනුව ඔවුන් ඇතුළු විසින් ඇතුළත් කළ හැකි පවතින මොඩියුල ප්රමාණය වේ.


6
තවද මෙම පැකේජ සියල්ලම සාපේක්ෂව නැවුම් බැවින් ඒවා පසුපස බැලීමේ වාසිය ඇති අතර මෑත කාලීන වෙබ් ප්‍රමිතීන්ට අනුකූල වේ.
joeytwiddle

3
නිසි ගෞරවය සහිතව, එන්පීඑම් හි බොහෝ පැකේජ භයානක ය, මන්ද එන්පීඑම් පැකේජ ශ්‍රේණිගත කිරීමේ යාන්ත්‍රණයක් නොමැති බැවිනි . සිට පසු විපරමේ CPAN ඕනෑම කෙනෙකුට?
ඩෑන් ඩස්කල්ස්කු

වෙබ්සොකට් පුස්තකාල කිසිවකට rfc 6455 පිරිවිතරයන් සපුරාලිය නොහැක. node.js මෙම කරුණ ලබා දෙන විට රසිකයින් බිහිරි, ගොළු සහ අන්ධ ය.
r3wt

1
ඔබ අදහස් දැක්වූයේ කවදාදැයි මම නොදනිමි, නමුත් මේ වන විට ws පුස්තකාලය එම පිරිවිතරයට සහය දක්වයි
ජොනතන් ග්‍රේ

37

මගේ කෑල්ල: විශ්ලේෂණ, චැට්-ඇප්ස්, ඇපිස්, ඇඩ් සර්වර් වැනි තාත්වික පද්ධති සෑදීම සඳහා නෝඩ්ජස් විශිෂ්ටයි. නිරය, මම මගේ පළමු චැට් ඇප් එක නෝඩ්ජස් සහ සොකට්.ඕ භාවිතා කර පැය 2 ක් තුළ සාදන ලද අතර එයද විභාග සතිය තුළදී!

සංස්කරණය කරන්න

මම nodejs භාවිතා කිරීමට පටන් ගෙන වසර කිහිපයක් ගත වී ඇති අතර ස්ථිතික ගොනු සේවාදායකයන්, සරල විශ්ලේෂණ, චැට් යෙදුම් සහ තවත් බොහෝ දේ සෑදීමට මම එය භාවිතා කර ඇත්තෙමි. Nodejs භාවිතා කළ යුතු අවස්ථාව මෙයයි

භාවිතා කළ යුතු වේලාව

සමගාමී මුදල් හා වේගය අවධාරණය කරන පද්ධතියක් සෑදීමේදී.

  • සොකට් චැට් ඇප්ස්, ඉර්ක් ඇප්ස් වැනි සේවාදායකයන් පමණි.
  • භූ ස්ථානගත කිරීම, වීඩියෝ ප්‍රවාහය, ශ්‍රව්‍ය ප්‍රවාහය වැනි තත්‍ය කාලීන සම්පත් සඳහා අවධාරණය කරන සමාජ ජාල.
  • විශ්ලේෂණ වෙබ් ඇප් එකක් මෙන් කුඩා දත්ත කැබලි ඉතා වේගයෙන් හැසිරවීම.
  • REST පමණක් නිරාවරණය වන විට api.

භාවිතා නොකළ යුතු විට

එය ඉතා බහුකාර්ය වෙබ් සේවාදායකයක් බැවින් ඔබට අවශ්‍ය ඕනෑම තැනක එය භාවිතා කළ හැකි නමුත් බොහෝ විට මෙම ස්ථාන නොවේ.

  • සරල බ්ලොග් සහ ස්ථිතික අඩවි.
  • ස්ථිතික ගොනු සේවාදායකයක් ලෙස.

මතක තබා ගන්න මම නිකම්ම නිකම් පිහියක් බව. ස්ථිතික ගොනු සේවාදායකයන් සඳහා, අපාචේ වඩා හොඳ වන්නේ එය පුළුල් ලෙස ලබා ගත හැකි බැවිනි. වසර ගණනාවක් පුරා nodejs ප්‍රජාව විශාල හා පරිණත වී ඇති අතර ඔබට ඔබේම තේරීමක් තිබේ නම් සෑම තැනකම පාහේ nodejs භාවිතා කළ හැකි බව පැවසීම ආරක්ෂිතයි.


සරල බ්ලොග් වලට තවමත් Node.js වෙතින් ප්‍රයෝජන ගත හැකිය. ස්ථිතික ලිපිගොනු සේවය සඳහා, ඔබට තවමත් Node.js භාවිතා කළ හැකි අතර බර වැඩි වුවහොත්, වර්තමාන හොඳම භාවිතයන්ට අනුව Nginx ප්‍රතිලෝම ප්‍රොක්සිය එය ඉදිරිපිට එක් කරන්න. Apache httpd සේවාදායකය මිය යන ඩයිනෝසෝරයෙකි - මෙම Netcraft සමීක්ෂණය බලන්න .
එන්ඩර්ජු

මම වෙනත් ආකාරයකින් කියමි - ghost.org දෙස බලන්න , විශ්මයජනක පෙනුමක් ඇති අතර එය NodeJs මත ගොඩනගා ඇත - සහයෝගීතාව, තත්‍ය කාලීන ලිපි සංස්කරණය. ද, NodeJs දී සරල පිටුව නිර්මාණය භාවිතා කියන්න sailsjs.org , පහසු වන අතර, වේගවත් සහ ඔබ සර්වර්-සයිඩ් ක්රමලේඛන භාෂා ඕනෑම ඉගෙන සමග ඔබ කරදර විය යුතු නැත
Bery

30

එය කොහේද භාවිතා කළ හැකිය

  • අතිශයින්ම සිදුවීම් මත පදනම් වූ සහ දැඩි ලෙස I / O බැඳී ඇති යෙදුම්
  • වෙනත් පද්ධති සමඟ සම්බන්ධතා විශාල ප්‍රමාණයක් හසුරුවන යෙදුම්
  • තත්‍ය කාලීන යෙදුම් (Node.js නිර්මාණය කර ඇත්තේ තථ්‍ය කාලය සඳහා සහ භාවිතයට පහසු වන පරිදි).
  • වෙනත් ප්‍රභවයන් වෙත සහ ඉන් පිටතට යන තොරතුරු ප්‍රවාහයන් හසුරුවන යෙදුම්
  • අධික තදබදය, පරිමාණය කළ හැකි යෙදුම්
  • දත්ත විශ්ලේෂණ විශාල ප්‍රමාණයක් නොකර වේදිකා API සහ දත්ත සමුදාය සමඟ කතා කළ යුතු ජංගම යෙදුම්
  • ජාලගත යෙදුම් ගොඩනඟන්න
  • පසුපස කෙළවරට කථා කිරීමට අවශ්‍ය යෙදුම් බොහෝ විට

ජංගම දුරකථන වලදී, ප්‍රයිම් ටයිම් සමාගම් ඔවුන්ගේ ජංගම විසඳුම් සඳහා Node.js මත විශ්වාසය තබා ඇත. ඇයි කියලා බලන්න?

LinkedIn ප්‍රමුඛ පරිශීලකයෙකි. ඔවුන්ගේ මුළු ජංගම තොගය Node.js මත ගොඩනගා ඇත. ඔවුන් සෑම භෞතික යන්ත්‍රයකම අවස්ථා 15 ක් සහිත සේවාදායක 15 ක් ධාවනය කිරීමෙන් අවස්ථා 4 ක් දක්වා ගමන් කර ඇත.

eBay විසින් HTTP API සඳහා වෙබ් විමසුම් භාෂාවක් වන ql.io දියත් කරන ලද අතර එය ක්‍රියාත්මක වන වේලාව ලෙස Node.js භාවිතා කරයි. Node.js ක්‍රියාවලියකට 120,000 කට වඩා ක්‍රියාකාරී සම්බන්ධතා හැසිරවීමට නිත්‍ය සංවර්ධක-ගුණාත්මක උබුන්ටු වැඩපොළක් සුසර කිරීමට ඔවුන්ට හැකි විය, සෑම සම්බන්ධතාවයක්ම 2kB මතකයක් පරිභෝජනය කරයි!

වෝල්මාර්ට් සිය ජංගම යෙදුම Node.js භාවිතා කිරීම සඳහා ප්‍රතිනිර්මාණය කර එහි ජාවාස්ක්‍රිප්ට් සැකසුම් සේවාදායකයට තල්ලු කළේය.

වැඩිදුර කියවන්න: http://www.pixelatingbits.com/a-closer-look-at-mobile-app-development-with-node-js/


20

සමගාමී ඉල්ලීම් හැසිරවීම සඳහා හොඳම නෝඩය -

ඉතින්, අපි කතාවකින් පටන් ගනිමු. පසුගිය අවුරුදු 2 සිට මම ජාවාස්ක්‍රිප්ට් හි වැඩ කරමින් වෙබ් ඉදිරිපස කෙළවර සංවර්ධනය කරමින් සිටින අතර මම එය භුක්ති විඳින්නෙමි. පසුපෙළ යාලුවනේ අපට ජාවා, පයිතන් (අප ගණන් ගන්නේ නැත) හි ලියා ඇති ඒපීඅයි කිහිපයක් සපයන අතර අපි සරලවම අජැක්ස් ඇමතුමක් ලියන්නෙමු, අපගේ දත්ත ලබාගෙන අනුමාන කරන්න! අපි ඉවරයි. නමුත් ඇත්ත වශයෙන්ම එය එතරම් පහසු නැත, අපට ලැබෙන දත්ත නිවැරදි නොවේ නම් හෝ යම් සේවාදායක දෝෂයක් තිබේ නම් අපි හිර වී සිටින අතර අපගේ පසුපස සිටින පුද්ගලයින් තැපෑලෙන් හෝ චැට් මගින් සම්බන්ධ කර ගත යුතුය (සමහර විට වට්ස්ඇප් වලද :).) මෙය සිසිල් නොවේ. අපි අපගේ API ජාවාස්ක්‍රිප්ට් හි ලියා එම API අපගේ ඉදිරිපස කෙළවරේ සිට අමතන්නේ නම් කුමක් කළ යුතුද? ඔව්, එය ඉතා සිසිල් නිසා අප API හි කිසියම් ගැටලුවකට මුහුණ දුන්නොත් අපට ඒ පිළිබඳව සොයා බැලිය හැකිය. මොකක්ද කියන්න පුලුවන්ද ! ඔබට දැන් මෙය කළ හැකිය, කෙසේද? - නෝඩ් ඔබ වෙනුවෙන් ඇත.

ඔබේ API එක ජාවාස්ක්‍රිප්ට් හි ලිවිය හැකි බවට හරි එකඟ වූ නමුත් ඉහත ගැටලුව සමඟ මා හොඳින් නම් කුමක් කළ යුතුද? විවේක API සඳහා නෝඩ් භාවිතා කිරීමට ඔබට වෙනත් හේතුවක් තිබේද?

ඉතින් මෙන්න මැජික් ආරම්භ වේ. ඔව්, අපගේ ඒපීඅයි සඳහා නෝඩ් භාවිතා කිරීමට මට වෙනත් හේතු තිබේ.

අවහිර කිරීමේ ක්‍රියාකාරිත්වය හෝ නූල් දැමීම මත පදනම් වූ අපගේ සාම්ප්‍රදායික විවේක API පද්ධතියට නැවත යමු. සමගාමී ඉල්ලීම් දෙකක් සිදු වේ යැයි සිතමු (r1 සහ r2), ඒ සෑම එකක්ම දත්ත සමුදා ක්‍රියාකාරිත්වය අවශ්‍ය වේ. එබැවින් සාම්ප්‍රදායික ක්‍රමයේදී කුමක් සිදුවේද:

1. රැඳී සිටීමේ මාර්ගය: අපගේ සේවාදායකයා r1ඉල්ලීම ඉටු කිරීම ආරම්භ කර විමසුම් ප්‍රතිචාරයක් බලාපොරොත්තුවෙන් සිටී. සම්පුර්ණ වූ පසු r1, සේවාදායකය සේවය කිරීමට පටන් ගෙන r2එය ඒ ආකාරයෙන්ම කරයි. ඒ නිසා බලා සිටීම හොඳ අදහසක් නොවේ, මන්ද අපට එතරම් කාලයක් නොමැති නිසාය.

2. ආවේ මාර්ගය: අපේ සේවාදායකය ඉල්ලීම් දෙකටම නූල් දෙකක් නිර්මාණය වනු ඇත r1හා r2දත්ත ගබඩා විමසා දැනගත පසු ඔවුන්ගේ අරමුණ සේවය නිසා එහි fast.But සිසිල් ඔබ මේ දෙකම ඉල්ලීම එකම දත්ත විමසා දැනගත විට අප දෙදෙනා නූල් ද ප්රශ්නයක් වැඩි ආරම්භ බලන්න පුළුවන් නිසා, එය මතකය පරිභෝජනය එවිට ඔබට අවහිරතා ආකාරයේ ගැටළු සමඟ කටයුතු කළ යුතුය. එබැවින් එය බලා සිටීමට වඩා හොඳ නමුත් තවමත් ගැටළු තිබේ.

දැන් මෙන්න, නෝඩ් එය කරන්නේ කෙසේද:

3. නෝඩ්වේ: එකම සමගාමී ඉල්ලීමක් නෝඩයට පැමිණි විට එය එහි ඇමතුම සමඟ සිදුවීමක් ලියාපදිංචි කර ඉදිරියට යන අතර එය යම් r1ඉල්ලීමක් සඳහා විමසුම් ප්‍රතිචාරයක් බලාපොරොත්තුවෙන් නොසිටිනු ඇත. එබැවින් ඉල්ලීම පැමිණි විට නෝඩයේ සිදුවීම් ලූපය (ඔව් සිදුවීම් ලූපයක් ඇත මෙම අරමුණු ඉටුකරන නෝඩයේ.) සිදුවීමක් එහි ඇමතුම් ආපසු ගැනීමේ කාර්යය සමඟ ලියාපදිංචි කර r2ඉල්ලීම ඉටු කිරීම සඳහා ඉදිරියට ගොස් ඒ හා සමානවම එහි සිදුවීම එහි ඇමතුම් සමඟ ලියාපදිංචි කරන්න. කිසියම් විමසුමක් අවසන් වූ සෑම විටම එය අනුරූප සිදුවීම අවුලුවන අතර බාධාවකින් තොරව එහි ඇමතුම් ආපසු ලබා ගැනීම ක්‍රියාත්මක කරයි.

එබැවින් බලා සිටීම, නූල් දැමීම, මතක පරිභෝජනය නැත - ඔව් මෙය විවේක API සේවය සඳහා නෝඩ්වේ වේ.


1
හායි අන්ෂුල්. නූල් ආකාරයෙන් අවහිරතා සිදුවිය හැකි ආකාරය පිළිබඳ යම් සම්පතක් විස්තාරණය කිරීමට හෝ යෝජනා කිරීමට ඔබට හැකිද?
jsbisht

16

නව ව්‍යාපෘතියක් සඳහා Node.js තෝරා ගැනීමට මගේ තවත් එක් හේතුවක් නම්:

පිරිසිදු වලාකුළු මත පදනම් වූ සංවර්ධනයක් කිරීමට හැකි වීම

මම කලක සිට Cloud9 IDE භාවිතා කර ඇති අතර දැන් එය නොමැතිව මට සිතාගත නොහැකිය, එය සියලු සංවර්ධන ජීවන චක්‍ර ආවරණය කරයි. ඔබට අවශ්‍ය වන්නේ බ්‍රව්සරයක් පමණක් වන අතර ඔබට ඕනෑම උපාංගයක ඕනෑම තැනක ඕනෑම වේලාවක කේත කළ හැකිය. ඔබට එක් පරිගණකයක (නිවසේදී මෙන්) කේතයක් පරීක්ෂා කිරීමට අවශ්‍ය නැත, ඉන්පසු වෙනත් පරිගණකයකින් (වැඩ කරන ස්ථානයේදී මෙන්) පරීක්ෂා කරන්න.

ඇත්ත වශයෙන්ම, වෙනත් භාෂා හෝ වේදිකා සඳහා වලාකුළු මත පදනම් වූ IDE තිබිය හැක (Cloud 9 IDE වෙනත් භාෂා සඳහාද ආධාරක එකතු කරයි), නමුත් Node.js සංවර්ධනය කිරීම සඳහා Cloud 9 භාවිතා කිරීම ඇත්තෙන්ම මට හොඳ අත්දැකීමක් වේ.


1
ඇත්ත වශයෙන්ම Cloud9 IDE සහ අනෙක් ඒවා (මම භාවිතා කරන කේතනය කිරීම) සෑම ආකාරයකම වෙබ් භාෂාවට සහය දක්වයි.
වන්නි මයරෙලි

7
ඔයා බරපතල මචන්? තොගයක් තෝරා ගැනීමේ නිර්ණායක මෙයද? :) සතුටුයි එය ඔබ වෙනුවෙන් වැඩ කිරීම!
matanster

15

නෝඩ් සපයන තවත් එක් දෙයක් නම්, පියාසර කරන විට නෝඩ් හි ළමා ක්‍රියාවලිය ( childProcess.fork () සෑම ලේඛනයකටම 10mb මතකයක් අවශ්‍ය වේ ) භාවිතා කරමින් නෝඩ් වල v8 ක්ෂණික නෝඩ් කිහිපයක් නිර්මාණය කිරීමේ හැකියාව , එමඟින් සේවාදායකය ක්‍රියාත්මක වන ප්‍රධාන ක්‍රියාවලියට බල නොපායි. එබැවින් විශාල සේවාදායක බරක් අවශ්‍ය පසුබිම් රැකියාවක් ඕෆ්ලෝඩ් කිරීම ළමා සෙල්ලමක් බවට පත්වන අතර අපට අවශ්‍ය විටෙකදී ඔවුන්ව පහසුවෙන් මරා දැමිය හැකිය.

මම බොහෝ විට නෝඩ් භාවිතා කර ඇති අතර අප විසින් ගොඩනඟන බොහෝ යෙදුම්වල එකවර සේවාදායක සම්බන්ධතා අවශ්‍ය වන අතර එමඟින් අධික ජාල තදබදයක් පවතී. වැනි රාමුව Express.js සහ නව Koajs (එය ඉවත් callback නිරයේ) ඊටත් වඩා පහසු node එකක් මතම ඊට අදාල වැඩ කර ඇත.


15

ඇස්බැස්ටෝස් ලෝන්ජෝන් ලබා දීම ...

ඊයේ මගේ මාතෘකාව පැක්ට් ප්‍රකාශන සමඟ, ජාවාස්ක්‍රිප්ට් සමඟ ප්‍රතික්‍රියාශීලී වැඩසටහන්කරණය . එය සැබවින්ම Node.js කේන්ද්‍රීය මාතෘකාවක් නොවේ; මුල් පරිච්ඡේද න්‍යාය ආවරණය කිරීමට අදහස් කරන අතර පසුව කේත-බර පරිච්ඡේදයන් පුහුණුව ආවරණය කරයි. මම ඇත්තටම ඒ පාඨකයාට වෙබ්-සේවාදායකය දෙන්න අසමත් කිරීමට සුදුසු වේ හිතන්නේ නැති නිසා, Node.js බවක් බොහෝ දුරට පැහැදිලි තේරීම. නඩුව විවෘත කිරීමට පෙර එය වසා දමන ලදී.

Node.js සමඟ මගේ අත්දැකීම් පිළිබඳව මට ඉතා රෝස දර්ශනයක් ලබා දිය හැකිව තිබුණි. ඒ වෙනුවට මට හමු වූ හොඳ කරුණු සහ නරක කරුණු ගැන මම අවංක විය.

මෙහි අදාළ උපුටා දැක්වීම් කිහිපයක් ඇතුළත් කිරීමට මට ඉඩ දෙන්න:

අවවාදයයි: Node.js සහ එහි පරිසර පද්ධතිය උණුසුම්යි - ඔබව නරක ලෙස පුළුස්සා දැමීමට තරම්!

මම ගණිතයේ ගුරුවරයෙකුගේ සහායකයකු ලෙස සිටියදී, මට පැහැදිලි නොවූ එක් යෝජනාවක් වූයේ යමක් “පහසු” යැයි ශිෂ්‍යයෙකුට නොකියන ලෙසයි. නැවත සලකා බැලීමේදී හේතුව තරමක් පැහැදිලිව පෙනෙන්නට තිබුණි: ඔබ යමක් පහසු යැයි මිනිසුන්ට පැවසුවහොත්, විසඳුමක් නොදකින කෙනෙකුට මෝඩ හැඟීමක් ඇති විය හැකිය (ඊටත් වඩා) මෝඩකම, මන්ද ඔවුන්ට ගැටලුව විසඳන්නේ කෙසේද යන්න පමණක් නොව ගැටලුව ඔවුන් තේරුම් ගැනීමට තරම් මෝඩයි පහසු එකක්!

පයිතන් / ජැන්ගෝ වෙතින් පැමිණෙන පුද්ගලයින්ට කරදර නොකරන ගොචා ඇත, ඔබ යමක් වෙනස් කළහොත් වහාම ප්‍රභවය නැවත පූරණය කරයි. Node.js සමඟ, පෙරනිමි හැසිරීම නම්, ඔබ එක් වෙනසක් සිදු කරන්නේ නම්, පැරණි අනුවාදය කාලය අවසන් වන තුරු හෝ ඔබ අතින් නතර කර සේවාදායකය නැවත ආරම්භ කරන තෙක් අඛණ්ඩව ක්‍රියාත්මක වේ. මෙම නුසුදුසු හැසිරීම පයිතොනිස්ටස්ට කරදරයක් නොවේ; එය විවිධ ක්‍රියාකාරීත්වයන් සපයන ස්වදේශීය Node.js පරිශීලකයින් ද කෝපයට පත් කරයි. StackOverflow ප්‍රශ්නයට “Node.js හි ගොනු ස්වයංක්‍රීයව නැවත පූරණය කිරීම” මෙම ලිපිය ලියන අවස්ථාව වන විට උඩුකුරු 200 කට අධික ප්‍රමාණයක් සහ පිළිතුරු 19 ක් ඇත; සංස්කරණයක් මඟින් http://tinyurl.com/reactjs-node-supervisor හි මුල් පිටුව සමඟ නෝඩ්-සුපරීසර් නැනී ස්ක්‍රිප්ට් වෙත යොමු කරයි.. මෙම ගැටළුව නව පරිශීලකයින්ට මෝඩ බවක් දැනීමට විශාල අවස්ථාවක් ලබා දෙන්නේ ඔවුන් ගැටලුව විසඳා ඇතැයි සිතූ නිසාය, නමුත් පැරණි, දෝෂ සහිත හැසිරීම සම්පූර්ණයෙන්ම වෙනස් නොවේ. සේවාදායකය තල්ලු කිරීමට අමතක කිරීම පහසුය; මම කිහිප වතාවක්ම එසේ කර ඇත්තෙමි. මම දීමට කැමති පණිවිඩය නම්, “නැත, ඔබ මෝඩ නැත, මන්ද Node.js හි මෙම හැසිරීම ඔබේ පිටුපසට පහර දෙයි; Node.js හි නිර්මාණකරුවන් මෙහි සුදුසු හැසිරීම් සැපයීමට කිසිදු හේතුවක් නොදැක්වීය. එය සමඟ සාර්ථකව කටයුතු කිරීමට උත්සාහ කරන්න, සමහර විට නෝඩ්-සුපරීක්ෂකගෙන් හෝ වෙනත් විසඳුමකින් සුළු උපකාරයක් ලබා ගන්න, නමුත් කරුණාකර ඔබ මෝඩයෙක් යැයි හැඟීමෙන් ඉවත්ව නොයන්න. ගැටලුව ඇති තැනැත්තා ඔබ නොවේ; ගැටළුව ඇත්තේ Node.js හි සුපුරුදු හැසිරීම තුළ ය. ”

මෙම කොටස, යම් විවාදයකින් පසුව, “එය පහසුය” යන හැඟීම ලබා දීමට මා අකමැති නිසාය. වැඩ කිරීමට දේවල් ලබා ගැනීමේදී මම නැවත නැවතත් මගේ දෑත් කපා, දුෂ්කරතා මඟහරවා ගැනීමට මට අවශ්‍ය නැති අතර, Node.js සහ එහි පරිසර පද්ධතිය හොඳින් ක්‍රියාත්මක වීම සෘජු කාරණයක් වන අතර එය ඔබටත් ward ජු නොවේ නම් , ඔබ දන්නේ නැහැ ඔබ කරන්නේ කුමක්ද කියා. ඔබ Node.js භාවිතා කර පිළිකුල් සහගත දුෂ්කරතාවන්ට මුහුණ නොදෙන්නේ නම් එය අපූරුය. ඔබ එසේ කළහොත්, “මම මෝඩයෙක්, මා සමඟ යම් වැරැද්දක් තිබිය යුතුයි” යන හැඟීමෙන් ඔබ ඉවත්ව නොයනු ඇතැයි මම බලාපොරොත්තු වෙමි. Node.js සමඟ ගනුදෙනු කිරීමේදී අප්රසන්න විස්මයන් අත්විඳින්නේ නම් ඔබ මෝඩ නැත. ඒ ඔබ නොවේ! එය Node.js සහ එහි පරිසර පද්ධතියයි!

අවසාන පරිච්ඡේදවල සහ නිගමනයෙන් පසුව මට සැබවින්ම අවශ්‍ය නොවූ උපග්‍රන්ථය, පරිසර පද්ධතිය තුළ මට සොයාගත හැකි දේ ගැන කථා කරන අතර, මෝරොනික් වචනාර්ථවාදය සඳහා ක්‍රියාමාර්ගයක් සපයයි:

HTML5 යතුරු-වටිනාකම් ගබඩාවේ සේවාදායක පාර්ශවයක් ක්‍රියාත්මක කිරීම පරිපූර්ණ සුදුසුකමක් ලෙස පෙනෙන සහ තවමත් මුදවා ගත හැකි තවත් දත්ත සමුදායකි. මෙම ප්‍රවේශය මඟින් බොහෝ හොඳ ඉදිරිපස සංවර්ධකයින් හොඳින් වටහාගෙන ඇති API එකක ප්‍රධාන වාසිය ඇත. එම කාරණය සඳහා, එය එතරම් හොඳ නොවන ඉදිරිපස සංවර්ධකයින් ප්‍රමාණවත් ලෙස තේරුම් ගන්නා API එකකි. නමුත් node-localstorage පැකේජය සමඟ, ශබ්ද කෝෂ-සින්ටැක්ස් ප්‍රවේශය ලබා නොදෙන අතර (ඔබට localStorage.setItem (key, value) හෝ localStorage.getItem (key) භාවිතා කිරීමට අවශ්‍යය, localStorage [key] නොවේ), සම්පූර්ණ localStorage අර්ථ නිරූපණය ක්‍රියාත්මක වේ පෙරනිමි 5MB කෝටාවක් ඇතුළුව - ඇයි? සේවාදායක පාර්ශවීය ජාවාස්ක්‍රිප්ට් සංවර්ධකයින් තමන්ගෙන් ආරක්ෂා විය යුතුද?

සේවාදායක පාර්ශව දත්ත සමුදායන් සඳහා, වෙබ් අඩවියකට 5MB කෝටාවක් යනු සංවර්ධකයින්ට එය සමඟ වැඩ කිරීමට ඉඩ දීම සඳහා ත්‍යාගශීලී සහ ප්‍රයෝජනවත් හුස්ම ගැනීමේ කාමරයකි. ඔබට වඩා අඩු කෝටාවක් සැකසිය හැකි අතර කුකී කළමණාකරනය සමඟ ලිහිල් කිරීමට වඩා සංවර්ධකයින්ට ඉමහත් දියුණුවක් ලබා දිය හැකිය. 5MB සීමාවක් බිග් දත්ත සේවාදායක පාර්ශව සැකසීමට ඉතා ඉක්මණින් ණයට දෙන්නේ නැත, නමුත් සම්පත්දායක සංවර්ධකයින්ට බොහෝ දේ කිරීමට භාවිතා කළ හැකි තරමක් ත්‍යාගශීලී දීමනාවක් තිබේ. නමුත් අනෙක් අතට, 5MB යනු මෑතකදී මිලදී ගත් බොහෝ තැටිවල විශේෂයෙන් විශාල කොටසක් නොවේ, එයින් අදහස් වන්නේ ඔබ සහ වෙබ් අඩවියක් තැටි අවකාශය සාධාරණ ලෙස භාවිතා කිරීම පිළිබඳව එකඟ නොවන්නේ නම් හෝ සමහර වෙබ් අඩවි හුදෙක් හොග් නම්, එය ඇත්ත වශයෙන්ම පිරිවැය නොවේ ඔබේ දෘ hard තැටිය මේ වන විටත් පිරී නොතිබුණි නම් ඔබ බොහෝ දුරට ගිලී ගිය දෘ drive තැටියක අනතුරකට ලක් නොවේ.

කෙසේ වෙතත්, ඔබ ඔබේ සේවාදායකයා සඳහා එක් ලිවීමේ කේතයක් වන විට, ඔබේ දත්ත සමුදාය 5MB ප්‍රමාණයට වඩා දරාගත නොහැකි තරම් අමතර ආරක්ෂාවක් අවශ්‍ය නොවන බව මෘදු ලෙස පෙන්වා දිය හැකිය. බොහෝ සංවර්ධකයින්ට නැනී ලෙස ක්‍රියා කිරීමට අවශ්‍ය නොවන අතර අවශ්‍ය නොවන අතර සේවාදායක පාර්ශවීය දත්ත 5MB ට වඩා ගබඩා කිරීමෙන් ඒවා ආරක්ෂා කරයි. 5MB කෝටාව සේවාදායකයාගේ පැත්තෙන් රන්වන් සමතුලිත ක්‍රියාවක් වන අතර එය Node.js සේවාදායකයේ තරමක් මෝඩය. (තවද, මෙම උපග්‍රන්ථයේ ආවරණය කර ඇති බහු පරිශීලකයින් සඳහා දත්ත සමුදායක් සඳහා, ඔබ එක් එක් පරිශීලක ගිණුම සඳහා තැටියේ වෙනම දත්ත සමුදායක් නිර්මාණය නොකරන්නේ නම් එය පරිශීලක ගිණුමකට 5MB නොවන බව තරමක් වේදනාකාරී ලෙස පෙන්වා දිය හැකිය; සියලුම පරිශීලක ගිණුම් එකට. එය වේදනාකාරී විය හැකියඔබ වෛරසයට ගියහොත්!) ලේඛනයේ සඳහන් වන්නේ කෝටාව අභිරුචිකරණය කළ හැකි නමුත් සතියකට පෙර සංවර්ධකයාට කෝටාව වෙනස් කරන්නේ කෙසේදැයි විමසන ඊමේල් පණිවිඩයකට පිළිතුරු නොලැබෙන අතර ස්ටැක් ඕවර්ෆ්ලෝ ප්‍රශ්නයම අසන ලෙසම ය. මට සොයාගත හැකි එකම පිළිතුර ගිතුබ් කෝපි ස්ක්‍රිප්ට් ප්‍රභවය වන අතර, එය ඉදිකිරීම්කරුවෙකුට විකල්ප දෙවන පූර්ණ සංඛ්‍යා තර්කයක් ලෙස ලැයිස්තු ගත කර ඇත. එබැවින් එය ප්‍රමාණවත් තරම් පහසු වන අතර ඔබට තැටියක් හෝ කොටස් ප්‍රමාණයකට සමාන කෝටාවක් නියම කළ හැකිය. නමුත් තේරුමක් නැති අංගයක් වරාය කිරීමට අමතරව, විචල්‍යයක් හෝ ශ්‍රිතයක් සඳහා “අසීමිත” යන්නෙහි අර්ථය 0 ලෙස අර්ථ දැක්වීමේ සම්මත සම්මුතියක් අනුගමනය කිරීමට මෙවලම් කර්තෘ සම්පූර්ණයෙන්ම අසමත් වී ඇත. මෙම වැරදිසහගත ක්‍රියාව සමඟ කළ හැකි හොඳම දේ නම්, කෝටාව අනන්තය බව සඳහන් කිරීමයි:

if (typeof localStorage === 'undefined' || localStorage === null)
  {      
  var LocalStorage = require('node-localstorage').LocalStorage;
  localStorage = new LocalStorage(__dirname + '/localStorage',
    Infinity);
  }

අදහස් දෙකක් පිළිවෙලට මාරු කිරීම:

සමස්තයක් ලෙස ජාවාස්ක්‍රිප්ට් භාවිතා කරමින් මිනිසුන් නිරන්තරයෙන් පාදයට වෙඩි තබා ගත් අතර, ජාවාස්ක්‍රිප්ට් හි ගෞරවනීය භාෂාවක් බවට පත් කිරීම ඩග්ලස් ක්‍රොක්ෆෝඩ්ගේ සාරාංශයක් ලෙස මෙසේ පැවසීය. මෙන්න හොඳ කොටස්. වෙන කිසිවක් නැති බව අමතක කරන්න. ” සමහර විට උණුසුම් Node.js පරිසර පද්ධතිය තමන්ගේම “ඩග්ලස් ක්‍රොක්ෆර්ඩ්” වර්ධනය කර ගනු ඇත , ඔවුන් පවසනු ඇත, “Node.js පරිසර පද්ධතිය යනු වයිල්ඩ් වෙස්ට් කේතීකරණයකි, නමුත් සැබෑ මැණික් කිහිපයක් සොයාගත හැකිය. මෙන්න මාර්ග සිතියමක්. ඕනෑම වියදමකින් වැළකී සිටිය යුතු අංශ මෙන්න. ඕනෑම භාෂාවකින් හෝ පරිසරයකින් සොයා ගත හැකි ධනවත්ම ගෙවීම් සහිත ප්‍රදේශ මෙන්න. ”

සමහර විට වෙනත් කෙනෙකුට එම වචන අභියෝගයක් ලෙස ගත හැකි අතර, ක්‍රොක්ෆර්ඩ්ගේ නායකත්වය අනුගමනය කර Node.js සහ එහි පරිසර පද්ධතිය සඳහා “හොඳ කොටස්” සහ / හෝ “වඩා හොඳ කොටස්” ලිවිය හැකිය. මම පිටපතක් මිලදී ගන්නම්!

සියලු ව්‍යාපෘති සඳහා උද්යෝගය හා වැඩ කරන වේලාවන් සැලකිල්ලට ගෙන, මෙම ලිපිය ලියන අවස්ථාවේ දී නොමේරූ පරිසර පද්ධතියක් පිළිබඳ කිසියම් ප්‍රකාශයක් තියුණු ලෙස කෝපයට පත් කිරීම වසරක් හෝ දෙකක් හෝ තුනක් තුළ අවශ්‍ය වේ. “2015 Node.js පරිසර පද්ධතියට බිම් බෝම්බ කිහිපයක් තිබුණි. 2020 Node.js පරිසර පද්ධතියට විවිධ පාරාදීස ඇත. ”


9

ඔබේ යෙදුම ප්‍රධාන වශයෙන් වෙබ් ඇපිස් හෝ වෙනත් අයෝ නාලිකා එකතු කරන්නේ නම්, පරිශීලක අතුරුමුහුණතක් ලබා දෙන්න හෝ ගන්න, node.js ඔබට සාධාරණ තේරීමක් විය හැකිය, විශේෂයෙන් ඔබට වඩාත්ම පරිමාණයන් මිරිකීමට අවශ්‍ය නම්, හෝ ඔබේ ජීවිතයේ ප්‍රධාන භාෂාව නම් යනු ජාවාස්ක්‍රිප්ට් (හෝ විවිධ වර්ගයේ ජාවාස්ක්‍රිප්ට් ට්‍රාන්ස්පෝලර්) ය. ඔබ ක්ෂුද්‍ර සේවා ගොඩනඟන්නේ නම්, node.js ද හරි ය. කුඩා හෝ සරල ඕනෑම ව්‍යාපෘතියකට Node.js සුදුසු වේ.

එහි ප්‍රධාන විකුණුම් ලක්ෂ්‍යය වන්නේ සාමාන්‍ය බෙදීම්වලට වඩා පසුපෙළ දේවල් පිළිබඳ වගකීම භාර ගැනීමට ඉදිරිපස සිටින අයට ඉඩ දීමයි. තවත් සාධාරණ සාධාරණ විකුණුම් ලක්ෂ්‍යයක් නම්, ඔබේ ශ්‍රම බලකාය ආරම්භ කිරීමට ජාවාස්ක්‍රිප්ට් නැඹුරු නම්.

කෙසේ වෙතත්, එක්තරා ස්ථානයකින් ඔබ්බට, මොඩියුලරිටි, කියවීමේ හැකියාව සහ ප්‍රවාහ පාලනය සඳහා බල කිරීම සඳහා දරුණු හක්කකින් තොරව ඔබේ කේතය පරිමාණය කළ නොහැක. සමහර අය එම හක්ක වලට කැමතියි, විශේෂයෙන් සිදුවීම් මත පදනම් වූ ජාවාස්ක්‍රිප්ට් පසුබිමකින් පැමිණි ඔවුන් හුරුපුරුදු හෝ සමාව දෙන බව පෙනේ.

විශේෂයෙන්, ඔබේ යෙදුමට සමමුහුර්ත ප්‍රවාහයන් සිදු කිරීමට අවශ්‍ය වූ විට, ඔබ අඩක් බේක් කළ විසඳුම් මත ලේ ගැලීම ආරම්භ කරන අතර එමඟින් ඔබේ සංවර්ධන ක්‍රියාවලිය අනුව සැලකිය යුතු ලෙස මන්දගාමී වේ. ඔබේ යෙදුමේ ගණනය කිරීමේ තීව්‍ර කොටස් තිබේ නම්, ප්‍රවේශමෙන් තෝරාගැනීම (පමණක්) node.js. සමහර විට http://koajs.com/ හෝ වෙනත් නවෝත්පාදනයන් මුලින් කටු සහිත අංගයන් සමනය කරයි, මා මුලින් node.js භාවිතා කළ විට හෝ මෙය ලියූ කාලයට සාපේක්ෂව.


3
Node.js යෙදුම් පරිමාණය කිරීම සඳහා දැනට පවතින ප්‍රවේශයන් බොහොමයක් ඇති අතර, “අඩක් බේක් කළ විසඳුම්”, “භයානක හක්ක” සහ “භයානක API” හිමිකම් සම්බන්ධයෙන් ඔබ කිසිදු සඳහනක් සපයන බවක් නොපෙනේ. ඒවා මත මනස පුළුල් වේද?
ස්වේන් ස්ලොට්වෙග්

මම එය පා er කයාට අභ්‍යාසයක් ලෙස තබමි, නමුත් ප්‍රවාහ පාලනය සඳහා ඊනියා විසඳුම් දෙස බැලීම ප්‍රමාණවත්ය.
matanster

2
එය ඇත්තටම පිළිතුරක් නොවේ. පවත්නා විසඳුම් "භයානක හක්ක" යැයි ඔබ කියා සිටියත්, ඒ කිසිවක් පෙන්වා දීමට අපොහොසත් වේ. Node.js යෙදුම් පරිමාණය කිරීම සඳහා නිවැරදි ක්‍රමවේදයන් ඔබ තේරුම් නොගෙන හෝ නොදැන සිටිය හැකි යැයි ඔබ සිතුවාද?
ස්වේන් ස්ලොට්වෙග්

මම මගේ පිළිතුර ටිකක් යාවත්කාලීන කළා. සමහර විට ඔබට තවමත් පැමිණිලි ඇත, නමුත් එය වැරදියි කියා ඔබ සිතන්නේ නම් විස්තර සමඟ අදහස් දැක්විය යුතුය ... පිළිතුරේ අඩුපාඩුවක් පෙන්වා දීමට වඩා. එය ප්‍රජාව සඳහා වඩාත් tive ලදායී වනු ඇත.
matanster

-2

නෝඩ් ජේඑස් භාවිතා කරන්නේ කොතැනද සහ ඇයි යන්න මට බෙදා ගත හැකිය.

  1. චැට්, සහයෝගී සංස්කරණය වැනි තත්‍ය කාලීන යෙදුම් සඳහා අපි වඩාත් වැදගත් වන්නේ නෝඩ්ජස් සමඟ වන අතර එය සිදුවීම් පදනමක් වන අතර එය සේවාදායකයින්ගෙන් ගිනි සිදුවීම් සහ දත්ත සේවාදායකයින්ට ලබා දේ.
  2. බොහෝ දෙනාගේ අදහස ඇති ජාවාස්ක්‍රිප්ට් පදනම බැවින් සරල හා තේරුම් ගැනීමට පහසුය.
  3. වර්තමාන වෙබ් යෙදුම් බොහොමයක් කෝණික js සහ කොඳු නාරටිය දෙසට යන අතර, නෝඩ් සමඟ සේවාදායකයාගේ පැති කේතය සමඟ අන්තර් ක්‍රියා කිරීම පහසුය, මන්ද දෙදෙනාම json දත්ත භාවිතා කරනු ඇත.
  4. ප්ලගීන ගොඩක් තිබේ.

අඩුපාඩු: -

  1. Node බොහෝ දත්ත සමුදායන් සඳහා සහය දක්වනු ඇති නමුත් වඩාත් සුදුසු වන්නේ මොන්ගෝඩ්බ් ය.
  2. සම්පාදක දෝෂ ... කිසියම් දෝෂ ගිවිසුම් යෙදුමක් නැවත වැඩ කිරීමට අවශ්‍ය නම් නැවත අප වෙත ගොස් එය අතින් ආරම්භ කිරීම හෝ ඕනෑම ස්වයංක්‍රීය මෙවලමක් භාවිතා කිරීම අවශ්‍ය නම් සංවර්ධකයා සෑම ව්‍යතිරේකයක්ම හැසිරවිය යුතුය.

නිගමනය: - සරල හා තථ්‍ය කාලීන යෙදුම් සඳහා භාවිතා කිරීම වඩාත් සුදුසුය..ඔබට ඉතා විශාල ව්‍යාපාර තර්කනයක් සහ සංකීර්ණ ක්‍රියාකාරිත්වයක් තිබේ නම් වඩා හොඳට nodejs භාවිතා නොකළ යුතුය. ඔබට චැට් සහ ඕනෑම සහයෝගී ක්‍රියාකාරිත්වයක් සමඟ යෙදුමක් තැනීමට අවශ්‍ය නම් .. නෝඩ් විශේෂිත කොටස්වල භාවිතා කළ හැකි අතර ඉතිරිව ඇත්තේ ඔබේ පහසුව තාක්‍ෂණය සමඟ ය.


-3
  1. ඉක්මන් මූලාකෘති සඳහා නෝඩ් විශිෂ්ටයි නමුත් මම එය කිසි විටෙකත් සංකීර්ණ කිසිවක් සඳහා භාවිතා නොකරමි. මම සම්පාදකයෙකු සමඟ සම්බන්ධතාවයක් ගොඩනඟා ගැනීමට වසර 20 ක් ගත කළ අතර මට එය මග හැරෙනු ඇත.

  2. ඔබ ටික වේලාවක් නොපැමිණි කේත නඩත්තු කිරීම සඳහා නෝඩ් විශේෂයෙන් වේදනාකාරී වේ. ටයිප් තොරතුරු සහ සම්පාදක කාල දෝෂ හඳුනාගැනීම හොඳ දේ. ඇයි ඒ සියල්ල විසි කරන්නේ? කුමක් සඳහා ද? ඩැං, යමක් දකුණට ගිය විට තොගය බොහෝ විට සම්පූර්ණයෙන්ම නිෂ් .ල ය.


2
ඔබට සම්පාදක කාල පරීක්ෂාව නොලැබෙන අතර, ඔබ කැමති ඕනෑම ආකාරයක තොරතුරු එක් කිරීමට JSDoc ඔබට ඉඩ සලසයි, එවිට ඔබ නැවත පැමිණෙන විට දේවල් වඩාත් අර්ථවත් වේ. නිසි ලෙස දිරාපත් වූ (කුඩා) කාර්යයන් සාමාන්‍යයෙන් මනාව නිර්වචනය කර ඇති පරිසරය (වසා දැමීම) නිසා පහසුවෙන් අල්ලා ගැනීමට පහසුය. ඔබගේ තර්කනය අතර අසමමුහුර්ත ඇමතුමක් සමඟ ඔබ බෙදී නොයන බව සහතික කිරීම සඳහා බොහෝ විට නැවත සැකසීමෙන් නරක සිරස් හෝඩුවාවන් නිරාකරණය කළ හැකිය. ඔබගේ අසින්ක් කෝල්බැක් එකම වසා දැමීමක් තුළ තබා ගැනීම ගැන තර්ක කිරීම සහ නඩත්තු කිරීම පහසු කරයි.
පොහොසත් රිමර්

2
මම සම්පාදනය කරන ලද භාෂා සමඟ වසර 30 ක් ගත කර ඇත, නමුත් එය වසරක් පමණ භාවිතා කිරීමෙන් පසු ජාවාස්ක්‍රිප්ට් දැන් මගේ තේරීමේ භාෂාවයි. එය එතරම්ම tive ලදායීයි - ජාවා සී # සී ++ හෝ සී වලට වඩා අඩු කේතයකින් මට බොහෝ දේ කළ හැකිය. නමුත් එය වෙනස් මානසිකත්වයකි. ටයිප් නොකළ විචල්‍යය ඇත්ත වශයෙන්ම බොහෝ අවස්ථාවන්හි වාසියකි. JSLINT අත්‍යවශ්‍යයි. ඔබට දේවල් කිරීමට අවශ්‍ය වූ විට සමගාමීව අසමමුහුර්ත ඇමතුම් ලබා ගැනීම ඔබට නූල් භාවිතා කළ යුතු ඕනෑම භාෂාවකට වඩා ආරක්ෂිත, පහසු සහ අවසානයේ වඩා tive ලදායී වේ. ජාවාස්ක්‍රිප්ට් බ්‍රව්සරයේ භාෂාව නිසා ඔබ කෙසේ හෝ දැනගත යුතුය.
ජේම්ස්

මතු වී ඇති උත්සුකයන්ට මම අනුකම්පා කරමි. ඒවා විශ්වීය ලෙස අදාළ නොවුනත් ඒවා විසඳීමට යම් යම් උත්සාහයන් ගෙන ඇති බව මම සටහන් කරමි. ජාවාස්ක්‍රිප්ට් කේතය සහ පුස්තකාලවල ස්ථිතික විශ්ලේෂණයන්ගෙන් ව්‍යුත්පන්න කළ හැකි ටර්න් නම් විස්මිත ව්‍යාපෘතියක් ඇත. එහි විවිධ සංස්කාරකවරුන් සඳහා ප්ලගීන ඇත. යතුරු ලියනය , ජේඑස්ඩොක් සහ බෙටර් ජේඑස් ද ඇත. පසුව ඇති යන්න බොහෝ එක් බැදීමකට-කිරීමට ජාවාස්ක්රිප්ට් භාෂා !
joeytwiddle
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.