Full width home advertisement

Post Page Advertisement [Top]




සාදරයෙන් පිලිගන්නවා අළුත් NodeJS ලිපියකට. මතකනෙ මම කලින් ලිපියේදී කිව්ව http මොඩියුල් එක ගැන. මේ වගේම හදපු තව මොඩියුල් තියෙනවා NodeJS එක්කම In-Built එන. අද මං හදන්නේ ඔය වගේ තව එන මොඩියුල් ටිකක් එකතු කරලා තනි සර්වර් එකක් හදන්න. මේ හදන සර්වර් එක ෆයිල් සර්වර් එකක්. මේ සර්වර් එකෙන් පුළුවන් ඔයාල කැමතිම සින්දු එකතු කරලා නෙට්වර්ක් එකක් හරහා අහන්න. සිංදු තියෙන ෆෝල්ඩර් එක ඉල්ලුවොත් සිංදු ලිස්ට් එකක් HTML ෆයිල් එකක් විදිහට එවන්නත් පුළුවන්. දැනට මේක ගොඩක් සරලව තමා හදල තියෙන්නෙ. ඒත් ඔයාලට මේක තව ඕනේ තරම් දියුණු කරන්න පුළුවන් මේ සර්වර් එකක් කොහොමද වැඩකරන්නෙ කියල දැනගත්තාම.

ඒගේම අද මම හිතං ඉන්නවා ඔයාලට ටිකක් අළුත් ජාවා ස්ක්‍රිප්ට් ටිකක් කියල දෙන්නත්. ටික කාලෙකට කලින් ඒ කියන්නෙ 2015 දි ජාවා ස්ක්‍රිප්ට් අළුත් වුනා. ජාවා ස්ක්‍රිප්ට් වලට ටිකක් අළුත් ප්‍රෝග්‍රෑමින් ක්‍රම ටිකක් එකතු උනා. අද ලිපියෙන් ඒ දේවල් වලින් කීපයක් ගැනත් සාකච්ඡා වෙනවා.

හරි එහෙනම්. සිංදු සර්වර් එක හදන වැඩේ පටන් ගම්මු. මෙන්න මේ විදියට තමා ඔයාල හදන ෆයිල් ටික තියෙන්න ඕනේ. ඔයාලගේ සින්දු දාන්න ඕනේ ඔය තියන ෆෝල්ඩර් වලට. කැමති නම් තව ෆෝල්ඩර් ඔයාලට ඕනේ විදියට හදාගන්න වුනත් පුළුවන්. අපේ සර්වර් එක තමා StaticServer.js ෆයිල් එක.


හරි දැන් අපි කෝඩ් එක බලමු. මුලින්ම මම කරලා තියෙන්නෙ අපේ සර්වර් එකට උවමනා කරන මුලික මොඩියුල් ටික අපේ ප්‍රොජෙක්ට් එකට අරගන්න එක. require() ෆන්ෂන් එක එහෙම දැන් හුරු ඇති. අමතක නම් මීට කලින් ලිපිය කියවන්න.



  • http මොඩියුල් එක : මේ මොඩියුල් එක HTTP ප්රෝටෝකොල් එක හරහා දත්ත හුවමාරු කරන්න පාවිච්චි කරනව.
  • url මොඩියුල් එක : URL එකක් හැදිලා තියෙන්නෙ වැදගත් කොටස් කීපයකින්. පොඩි උදාහරණයක් ගමුකො.
     
  • https://example.org:81/foo?q=name#  කියන URL එක ගන්න. මේකේ example.org කියන්නෙ හොස්ට් නේම් එක. ඒ වගේම 81 කියන්නෙ පෝට් එක. /foo  කියල කියන්නෙ පාත් එකට. ? ලකුණෙන් පස්සෙ තියෙන q=name කියන්නෙ කුවරී ස්ට්‍රින් එකට.



  • ඉතිං මේ URL මොඩියුල් එකෙන් කරන්නේ මේ වගේ URL එකක් අරගෙන අපිට පාවිච්චි කරන්න ලේසි වෙන්න මේකේ තියෙන කොම්පෝනන්ට් ගලවල දෙන එක. පහළ තියෙන කෝඩ් එක බලන්නකෝ

  • ඒත් ඔය තියෙන්නෙ URL මොඩියුල් එකේ වැඩ කීපයක් විතරයි. ඔක්කොම ටික මෙතනින් බලාගන්න පුළුවන්.
  • fs මොඩියුල් එක : මේ මොඩියුල් එක පාවිච්චි කරලා ඔයාලට පුළුවන් ෆයිල් එක්ක වැඩ කරන්න. ඒ කියන්නෙ ඔයාලගේ සිස්ටම් එකේ අලුතෙන් ෆයිල් හදන්න, කියවන්න , ඩිලීට් කරන්න , නැත්නම් මොඩිෆයි කරන්න.. මේ වගේ ගොඩක් දේවල් කරන්න පුළුවන් FS මොඩියුල් එකෙන්.
  • path මොඩියුල් එක : මේ මොඩියුල් එක ෆයිල් පාත් එක්ක වැඩ කරද්දී හරි වැදගත්. උදාහරණයක් විදිහට ෆයිල් එකක නමක අගට තියෙන එක්ස්ටෙන්ෂන් එක අපිට වෙන්කරලා ගන්න පුළුවන්. මේ ගැන සම්පුර්ණ විස්තරයක් මෙතනින් බලන්න පුළුවන්.

හරි දැන් මොඩියුල් වල වැඩේ හරි. දැන් අපිට පුළුවන් අපේ සර්වර් එක හදන්න ගන්න. කොටිම්ම කිව්වොත් මේ වැඩේට උදව් ඕනේ වෙන කට්ටිය අපි දැන් අපේ ප්‍රොජෙක්ට් එකට අරං තියෙන්නෙ.
 දැන් අපි http මොඩියුල් එක පාවිච්චි කරලා සර්වර් එකක් හදමු. වැඩේ ක්ලික් උනේ නැත්නම් මීට කලින් ලිපිය කියවන්න.



  • දැන් බලන්න , ඔයාලට පේනවා ඇති මේ සර්වර් එක දුවන්නේ 8700 කියන port එකේ. 
  • ඒ වගේම බලන්න 6 වෙනි ලයින් එක.
  • ඔය වම්පැත්තෙ පින්තුරේ තියෙන්නෙ ජාවා ස්ක්‍රිප්ට් වලට අලුතින් ආපු කෝඩින් කරන්න පුළුවන් විදියක්. createSearver කියන ෆන්ෂන් එක ඇතුලේ තියෙන ඔය ජාතියේ ෆන්ෂන් වලට අපි කියන්නෙ කෝල් බැක් ෆන්ෂන් එකක් කියල. 
  • කෝල් බැක් ෆන්ෂන් එකක් කියන්නෙ , මොකක් හරි ෆන්ෂන් එකකට Argument එකක් විදිහට පාස් කරන ෆන්ෂන් එකකට. නැත්නං ඔයාලට තේරෙන විදියට නං , ෆන්ෂන් එකේ පැරාමීටර් ලිස්ට් එකට පාස් කරන ෆන්ෂන් එකකට. 
  • මේ කෝල්බැක් ෆන්ෂන් වල තියෙන විශේෂ දේ තමා , මෙයාව අයිති ලොකු ෆන්ෂන් එකේ වැඩේ ඉවර වුනු හැටියෙම මේ කෝල්බැක් ෆන්ෂන් එක වැඩ කරන්න ගන්නව.
  • මෙතැනදී නම් , අපේ සර්වර් එන හැම රික්වෙස්ට් එකකටම createServer() ෆන්ෂන් එකට අයිති කෝල්බැක් ෆන්ෂන් එක නිකම්ම වැඩ කරන්න ගන්නව(Execute). ඒ වගේම මේ කෝල්බැක් ෆන්ෂන් එක ඇසින්ක්‍රෝනස් කෝල්බැක් ෆන්ෂන් එකක්.
  • වම්පැත්තෙ තියෙන්නෙ අළුත් විදියට ලියපු ෆන්ෂන් එකක්. ඕවට කියන්නෙ ඇරෝ ෆන්ෂන් කියල. function කියන වචනෙ නැතුව පැරාමීටර් ලිස්ට් එකයි , ෆන්ෂන් බොඩි එකක් => ලකුණකින් වෙන් කරලා තමා මේ ජාතියේ ෆන්ෂන් ලියන්නේ. පහළ තියෙන කෝඩ් එක සංසන්දනය කරලා බලන්නකෝ.

හරි දැන් අපි ආපහු අපේ සිංදු සර්වර් එක පැත්තට යං.
   
 


  • බලන්නකො 8 වෙනි ලයින් එක. ඔය කරලා තියෙන්නෙ අපිට එන හැම ෆයිල් (සිංදු) රික්වෙස්ට් එකකම URL එක ප්‍රින්ට් කරන එක.
  • 10වෙනි ලයින් එකෙන් අපි URL මොඩියුල් එක පාවිච්චි කරලා URL ඔබ්ජෙක්ට් එකක් හදාගන්නව.
  • 11 වෙනි ලයින් එකෙන් ඒ හදාගත්ත URL ඔබ්ජෙක්ට් එකෙන් අපිට ඕනේ ෆයිල් පාත් එක ගන්නව. මේ ෆයිල් පාත් එක අපිට ගොඩක් ප්‍රයෝජනවත් වෙනවා .පහළ උදාහරණය බලන්නකෝ.
  • ඊට පස්සෙ 13වෙනි ලයින් එකේ ඉඳන් 17 වෙනි ලයින් එක වෙනකන්ම තියෙන්නෙ අපිට ඕනේ කරන ෆයිල් ටයිප් ටික සඳහන් කරපු ලිස්ට් එකක්. මේක ගොඩක් වැදගත් ලිස්ට් එකක්. හිතන්න මෙහෙම , අපි රෙස්පොන්ස් එකක අදාළ MIME type එක සඳහන් නොකර රෙස්පොන්ස් එකක් යැව්වොත් බ්‍රව්සර් එක දන්නෙ නැහැ ඒ රෙස්පොන්ස් එකේ තියෙන්නෙ මොකක්ද කියන එක. බ්‍රව්සර් එකට ඒ ෆයිල් එක කියවගන්න තේරෙන්නේ නැහැ.
  • දැන් බලන්න 24 වෙනි ලයින් එක. අපි දැන් හදන්නේ FS මොඩියුල් එක පාවිච්චි කරලා , කවුරු හරි අපෙන් ඉල්ලපු ෆයිල් එක (සිංදුව) අදාළ තැන තියෙනවද කියල බලන එක.
  • ඒ වැඩේට අපි exists() ෆන්ෂන් එකට 11 වෙනි ලයින් එකෙන් හදාගත්ත ෆයිල් පාත් එක ඇතුල් කරනව. 
  • දැන් බලන්න exist ෆන්ෂන් එකේ දෙවෙනි Argument එක. කෝල් බැක් ෆන්ෂන් එකක් නේද?
    exist() ෆන්ෂන් එක ෆයිල් එක තියෙනවද නැද්ද කියල චෙක් කරල බලල , එන ප්‍රතිඵලයත් එක්ක කෝල්බැක් ෆන්ෂන් එක ක්‍රියාත්මක කරවනවා (execute).
  • දැන් බලමු කෝල් බැක් ෆන්ෂන් එක ඇතුලේ මොකක්ද තියෙන්නෙ කියල.

  • 26 වෙනි ලයින් එකෙන් වෙන්නේ ඉල්ලපු ෆයිල් එක (සිංදුව) නැත්නම් , ෆයිල් එක නෑ කියල බ්‍රව්සර් එකට රෙස්පොන්ස් එකක් යවන එක.
    අපි ගිය සතියේ ස්ටේටස් කෝඩ් ගැන කතා කරා මතක ඇතිනෙ.
  • ඊට පස්සෙ 37 වෙනි ලයින් එක බලන්න. මෙතැනදී කරන්නේ කවුරු හරි ඉල්ලන කෙනා සිංදු ලිස්ට් එක ඉල්ලුවොත් එයාට ෆෝල්ඩර් එක ඇතුලේ තියන සිංදු ලිස්ට් එක තියෙන index.html එක යවනව. පහළ ස්ක්‍රීන් ෂොට් එක බලන්නකෝ.


  • දැන් වැඩේ හරි. අපිට තියෙන්නෙ ෆයිල් එක රීඩ් කරලා රෙස්පොන්ස් එකක් විදිහට යවන එක.
  • 46 වෙනි ලයින් එක බලන්නකෝ.  readFile() ෆන්ෂන් එකට ෆයිල් පාත් එක පාස් කලාම කෝල් බැක් ෆන්ෂන් එකක් කෝල් වෙනව. 
  • ඒ ෆයිල් එක තියෙනව නං ෆයිල් ඩේට එක්ක. මොකක් හරි අවුලක් තියෙනව නං error ඩේට එක්ක.
  • 51 වෙනි ලයින් එකෙන් රීඩ් කරපු ෆයිල් එකේ extension එක ගන්න එක.
  • මොකෝ ඒක ඕනේ වෙනවා අපේ mimeTypeList එකෙන් mimeTypeList  එක රෙස්පොන්ස් එකක් විදිහට යවන්න.
  • 53 වෙනි ලයින් එකෙන් වෙන්නේ රෙස්පොන්ස් එකක් විදිහට සිංදුව අපිට send කරන එක.

සම්පුර්ණ කෝඩ් එක 





ප:ලි :: මේ ලිපිය ටිකක් දිග වැඩි නිසා මේකේ මගඇරුණු අළුත් javascript සංකල්ප ටික ඊළඟ ලිපියෙන් කියන්නම්...

2 comments:

  1. නියම වැඩක් දිගටම කරගෙන යන්න

    ReplyDelete
    Replies
    1. බොහොම ස්තුතියි මචං !!!

      Delete

Bottom Ad [Post Page]

| Designed by Colorlib