កម្មវិធីគេហទំព័រ​នៅ​លើប្រព័ន្ធ Heroku


Node.js ជា​កម្មវីធី​ជា​ភាសា JavaScript ដែល​អាចត្រូវ​យកទៅ​ប្រើប្រាស់​នៅ​លើ​​បណ្តា​ server ទាំងឡាយ សំរាប់បង្កើត​​កម្មវិធី​គេហទំព័រ​ផ្សេង​ៗ (web app) នៅលើ​បណ្តាញ​ Internet ។ កម្មវិធី​ Node.js ជា​កម្មវិធី​បើកទូលាយ (open source) ដែល​ត្រូវបានបង្កើត​ឡើយ​ដោយ​លោក Ryan Dahl និង​ត្រូវ​​បាន​ដាក់​អោយ​ប្រើប្រាស់​ជា​សាធារណ​នៅ​ក្នុង​កំឡុង​ឆ្នាំ ២០១០ ។

លក្ខណៈ​ពិសេស​របស់​កម្មវិធី Node.js គឺ​វា​ឈរ​លើ​គោលការណ៍ «Event Driven Programming» បាន​ន័យ​ថា​គ្រប់​កម្មវិធី​គេហទំព័រ​​ទាំងឡាយ​ណា​ដែលត្រូវ​បាន​បង្កើត​ឡើង​​ដោយ​ប្រើប្រាស់​កម្មវិធី Node.js អាច​នឹង​មិន​ដំណើរការជាប់រហូត​នៅ​លើ​ server នោះ​ទេ គឺ​វា​អាច​​ដំណើរការ​តែ​នៅ​ពេល​ណា​ដែល​មាន​អ្នក​ចូល​មើល​គេហទំព័រ​តែ​ប៉ុណ្ណោះ​។​ បើ​ពុំនោះសោតទេ កម្មវិធី​គេហទំព័រ​ទាំងនោះ​នឹង​ឈប់​ស្ញៀម​ស្ថិត​ក្នុង​ស្ថានភាព​​សំរាក​ឬ​ដេក (sleep) ។ កត្តា​នេះ បានកាត់បន្ថយ​​នូវ​បញ្ហា​ជា​ច្រើន​ដែល​កើត​មាន​នៅ​លើ​ server នៅ​ពេល​ដែល​មាន​មនុស្សចូលមើល​​គេហទំព័រ​ច្រើន​ពេក ដែល​ជា​ប្រការ​បណ្តាល​អោយ​មាន​បញ្ហា​ ជាប់​គាំង (deadlock) នៅ​លើ​ server ។

មួយ​វិញ​ទៀត ដោយ​ហេតុថា​កម្មវិធី Node.js ត្រូវ​បានសរសេរ​ឡើង​ដោយ​ប្រើប្រាស់​ភាសា JavaScript ដូចនេះ​​វា​ជា​រឿង​ងាយស្រួល​ជាទីបំផុត​សំរាប់​អ្នកអភិវឌ្ឍន៍​គេហទំព័រ​ទាំងឡាយ​ក្នុង​ការយកកម្មវិធី Node.js នេះ​មកប្រើប្រាស​ដើម្បីបង្កើត​និង​រចនា​គេហទំព័រ​គ្រប់​បែបយ៉ាង​ទាំងអស់ ពីព្រោះ​ភាសា JavaScript ជាភាសា​​យ៉ាង សាមញ្ញ តូចបំផុត គ្រប់ជ្រុងជ្រោយ និង ពោរពេញ​ដោយ​ថាមពល ដែល​ជា​កត្តាមួយ​អនុញ្ញាត​អោយ​យើង​អាច​​យក​កម្មវិធី Node.js មក​បង្កើត​គេហទំព័រ​គ្រប់បែបយ៉ាង​ទាំងអស់​​បាន​​យ៉ាង​ឆាប់​រហ័ស​ជាទីបំផុត​​​។

ជាកិច្ចចាប់​ផ្តើម ដើម្បីអាច​ប្រើប្រាស់​កម្មវិធី Node.js ​សំរាប់បង្កើត​កម្មវិធី​គេហទំព័រ​​ផ្សេង​ៗ​បាន យើង​ត្រូវ​ទាញ​យក​កម្មវិធី​នេះ​ពីគេហទំព័រដើម​របស់​វា​ ដែល​មាន​អាស័យដ្ឋានជា https://nodejs.org/en/download/

ដើម្បី​បង្កើត​កម្មវិធីគេហទំព័រ​ដ៏តូច​ជាងគេបំផុត​ដែល​អាច​ដំណើរការ​នៅ​លើ​បណ្តា​​ server ​ទាំងឡាយ​ណា​ដែល​ប្រើប្រាស់​កម្មវិធី Node.js នេះ​ យើង​ត្រូវ​ធ្វើ​ដូច​ខាង​ក្រោម​នេះ៖

var http = require('http');
var port = process.env.PORT || 8080;

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('កម្មវិធី​គេហទំព័រ​ Node.js នៅ​លើប្រព័ន្ធ Heroku!');
}).listen(port);

បន្ទាប់​មកទៀត យើង​ត្រូវ​រក្សា​កម្មវិធី​ខាង​លើ​នេះ​ទុក​ក្នុង​ថត​ណា​មួយ​នៅក្នុង​កំព្យូទ័រ​រប់ស​យើង ដោយ​ដាក់​ឈ្មោះ​ថា​អ្វី​ម៉្យាង​មាន​ដូចជា «app.js» ជា​ដើម​។ រួច​ហើយ​យើង​ត្រូវ​ចុច​ដំណើរការ​កម្មវិធី «Node.js command prompt» ដែល​ទើប​នឹងត្រូវ​បាន​​ដំឡើង​រួច​នោះ និង​សរសេរ​បញ្ជា​ «cd» ដើម្បី​ចូល​ទៅកាន់​ថត​ដែល​មាន​ឯកសារឈ្មោះ​ជា​ «app.js»​ ។ បន្ទាប់មកទៀត យើង​ត្រូវ​​សរសេរ​​នៅ​លើ​បង្អួច​ខ្មៅ​ដដែល​នោះថា «node app.js» ។



បើអ្វី​ៗ​បានដំណើរការទៅ​ដោយ​រលូន ហើយ​បង្អួច​ខ្មៅ​ដែល​ជា​កម្មវិធី Node.js នោះ​នៅ​តែ​មិន​ទាន់បិទ បើយើង​ចូល​ទៅ​កាន់​គេហទំព័រ​មួយ​ដែល​មាន​អាស័យដ្ឋាន​ជា http://localhost:8080/ យើង​នឹង​ឃើញ​កម្មវិធី​គេហទំព័រ​​របស់​យើង​ដែល​មាន​ឈ្មោះ​ថា «app.js» នោះ បង្ហាញ​លទ្ធផល​ដូច​ខាង​ក្រោម​នេះ​នោះ​លើ​ browser ។



ខាង​លើ​នេះ​ ជា​ឧទាហរណ៍​មួយ​នៃ​កម្មវិធី​គេហទំព័រ Node.js ដំណើរការនៅ​លើ​​ក្នុង​កំព្រូទ័រ​របស់​យើង (localhost) ដែល​​ត្រូវ​បាន​ប្រើប្រាស់​ជា​ server ដ៏​តូច​មួយ​សំរាប់​កម្មវិធី​នេះ​។ លើស​ពី​នេះទៀត យើង​ក៏អាច​យក​កម្មវិធី​គេហទំព័រ​តូច​មួ​យ​នេះ​ទៅ​ដាក់​នៅ​លើ​ server ធំ​ៗ​ជា​ច្រើន​នៅ​លើ​បណ្តាញ​ Internet បានដែរ​ មាន​ដូច​ជា​ប្រព័ន្ធ​ Heroku ជាដើម​។

មួយវិញទៀត ប្រព័ន្ធ Heroku អនុញ្ញាត​អោយ​យើង​អាច​យក​កម្មវិធី​គេហទំព័រ Node.js របស់​យើង​ទាំងឡាយ​ ទៅ​ដាក់​នៅលើ​ប្រព័ន្ធ​របស់​គេ​ដោយ​មិន​យក​ប្រាក់​ឡើយ បើ​សិន​ជា​កម្មវិធី​របស់​យើង​មាន​លក្ខណៈ​​ជា​កម្មវិធី​ផ្ទាល់​ខ្លួន មិនមែន​ជា​កម្មវិធី​ជា​មុខ​របររក​ស៊ី​ធំ​ដុំ​នោះ​។

ដើម្បី​អាច​យក​កម្មវិធី​គេហទំព័រ Node.js របស់​យើងទៅ​ដាក់​នៅ​លើ​ប្រព័ន្ធ​យក្ស Heroku នោះ​បាន យើង​ចាំបាច់​ត្រូវ​បង្កើត​គណនី​មួយ​នៅ​ក្នុង​ប្រព័ន្ធ​នោះ​ជា​មុន​សិន ដោយ​ចូល​ទៅ​តាម​អាស័យដ្ឋាន​នេះ https://www.heroku.com/



ក្រោយពេល​ដែល​មាន​គណនីមួយ​នៅ​ក្នុង​ប្រព័ន្ធ Heroku ហើយ ដើម្បី​យក​កម្មវិធី​គេហទំព័រ​ Node.js របស់​យើង​ទៅ​ដាក់​នៅ​លើ​ប្រព័ន្ធ​នោះ (deploy) យើង​ចាំបាច់​ត្រូវ​ទាញ​យក​កម្មវិធី​ចំនួន​ពីរ​ទៀត​មក​ដំឡើង​នៅ​ក្នុង​កំព្យូទ័រ​របស់​យើង​។

ដំបូង​ឡើយ យើង​ត្រូវ​ទាញ​យក​កម្មវិធី «git» ​ពី​អាស័យដ្ឋាននេះ https://git-scm.com/download/ មកដំឡើង​នៅ​ក្នុង​កំព្យូទ័រ​របស់​យើង​។ បន្ទាប់​មកទៀត យើង​ត្រូវទាញ​យក​កម្មវិធី «heroku-cli» មក​ដំឡើង​ពី​អាស័យដ្ឋាននេះ https://devcenter.heroku.com/articles/heroku-cli

លុះ​មាន​កម្មវិធី​ទាំងពីរនោះ​នៅ​ក្នុង​កំព្យូទ័រ​របស់​យើង​ហើយ យើង​ចាំបាច់​ត្រូវ​ចូល​ទៅ​ក្នុង​ប្រព័ន្ធ Heroku ដើម្បី​បង្កើត​កម្មវិធី​គេហទំព័រ​ទទេ​ស្អាត​មួយ​​សិន​នៅ​លើ​ប្រព័ន្ធ​នោះ​ ដោយ​ចូល​ទៅ​តាម​អាស័យដ្ឋាន​នេះ https://dashboard.heroku.com/apps រួច​ហើយចុច New > Create new app > App name > Create app ។



បន្ទាប់​ទៀត យើង​ត្រូវចុច​ដំណើរការ​កម្មវិធី «Node.js command prompt» ដែល​ជា​ផ្ទាំង​បង្អួច​ខ្មៅ​នៅ​ក្នុង​កំព្យូទ័រ​របស់​យើង និង​សរសេរ​បញ្ជា «cd» ចូល​ទៅ​ក្នុង​ថត​ដែល​ជា​កម្មវិធីគេហទំព័រ Node.js របស់​យើង ​ដែល​នៅ​ក្នុង​នោះ​មាន​​ឯកសារ «app.js» ។

បន្ទាប់មកទៀត យើងត្រូវ​សរសេរនៅ​លើ​បង្អួច​ខ្មៅ​នោះថា «npm init --yes» ដើម្បី​តំរូវ​អោយ​កម្មវិធី Node.js ​បង្កើត​ឯកសារមួយ​មាន​ឈ្មោះ​ថា «package.json» ទុក​នៅ​ក្នុង​ថត​ដែល​ជា​កម្មវិធី​គេហទំព័រ​រប់ស​យើង​។

បន្ទាប់មកទៀត យើងត្រូវលុប​អ្វី​ៗ​ចេញ​ពី​ក្នុង​នោះ​ចោល ហើយ​សរសេរ​ឡើង​វិញ​ដូច​ខាង​ក្រោម​នេះ៖
{
  "scripts":{
    "start":"node app.js"
  }
}

បន្ទាប់មកទៀត យើងត្រូវ​សរសរ​នៅ​លើបង្អួច​ខ្មៅ​ដែល​ជា​កម្មវិធី​ Node.js នោះ​ថា «heroku login» ។ ប្រព័ន្ធ Heroku នឹង​សុំ​អោយ​យើង​ចុច​ខ្ទង់​ (key) ណាមួយ​ក៏​បាន ដែល​នឹង​ធ្វើ​អោយ browser បើក​ឡើង​ជា​ស្វ័យប្រវត្តិ​ដើម្បី​អនុញ្ញាត​អោយ​យើងអាច​ log in ចូល​ទៅ​ក្នុង​ប្រព័ន្ធ Heroku ​។

បន្ទាប់​មកទៀត នៅ​លើ​បង្អួច​ខ្មៅ​ដដែល​នោះ យើង​ត្រូវ​សរសេរ​ថា «git init» ចុច Enter រួច​សរសេរថា «heroku git:remote -a ឈ្មោះគេហទំព័រ» ឧទាហរណ៍ (heroku git:remote -a kb-tutorial) ចុច​ Enter រួច​សរសេរ​ថា «git add .» ចុច Enter, រួច​សរសេរ​ថា «git commit -am "make it better"» ចុច Enter, រួច​សរសេរ​ថា «git push heroku master» ។

បើអ្វីៗ​បាន​ដំណើរការទៅ​ដោយ​រលូន កម្មវិធី​គេទំព័រ​ដ៏​តូច​មួយ​របស់​យើង​ត្រូវ​បាន​ចំលង​យកទៅ​ដាក់​នៅ​លើ​ប្រព័ន្ធ Heroku ជា​ស្វ័យប្រវត្តិ​។ ហើយ​យើង​បន្ត​សរសេរ​នៅ​លើ​បង្អួច​ខ្មៅ​នោះ​ទៀត​ថា «heroku open» browser នឹង​បើក​អោយ​យើង​មើល​កម្មវិធីគេហទំព័រ​របស់​​យើង​នៅ​លើ​ប្រព័ន្ធ​ Heroku នោះ​៕