ပြီးခဲ့တဲ့ ရုံးပိတ်ရက်က ExpressJS ကို အသုံးပြုပြီး project လေး တစ်ခုလုပ်ဖြစ်သွားတယ်။ ExpressJS ဆိုတာကတော့ Node.js အတွက် web framework တစ်ခုပါ။ ExpressJS က Sinatra ကို အခြေခံထားပြီး connect middleware ကို အသုံးပြုထားပါတယ်။

ပုံမှန် Node.js နဲ့ ရေးရင် ရပေမယ့် Restful API နဲ့ အဆင်မပြေပါဘူး။ တော်တော် အချိန်ပေးရပါတယ်။ ExpressJS ကို သုံးလိုက်တာ တော်တော်လေးကို လွယ်သွားတယ်။ Mobile အတွက် Admin Panel တစ်ခုဖန်တီးရာမှာလည်း Jade Template နဲ့ ရေးရတော့ ပုံမှန် သမာရိုးကျ HTML ရေးရတာထက်တော့ မြန်ပါတယ်။

Server ကိုတော့ လက်ရှိ Linode က Nginx ဖြစ်တဲ့အတွက်ကြောင့် Node.js production အတွက် တော်တော်အဆင်ပြေသွားပါတယ်။ လက်ရှိ Nginx က version 1.2 ပါ။ version 1.3 မှာ မှ web socket ကို စပြီး support လုပ်ပါမယ်။ ဒါကြောင့် လက်ရှိ stable version မှာတော့ Node.js socket တွေကို သုံးလို့မရသေးပါဘူး။ node.js နဲ့ socket သုံးချင်ရင်တော့ နောက်ထပ် server တစ်ခုသို့မဟုတ် Server တစ်ခုမှာပဲ နောက်ထပ် IP တစ်ခု ထပ်ပြီး attach လုပ်ဖို့ လိုအပ်ပါတယ်။ ဒါမှသာ socket run လို့ရမှာပါ။ ကျွန်တော့် အတွက်ကတော့ Mongodb နဲ့ CURD အပိုင်းလေးပဲ ပါတဲ့အတွက် Nginx မှာ တင် အဆင်ပြေပါတယ်။

Nginx မှာ proxy pass နဲ့ run လို့ရပါတယ်။

ကျွန်တော် port 3001 နဲ့ server မှာ run ထားပါတယ်။ ဒါကြောင့် 127.0.0.1:3001 ကို အသုံးပြုထားတာပါ။

Why Node.js ?

Node.js ကို ဘာကြောင့် သုံးသင့်လဲ။ ဘာတွေ ပိုကောင်းလဲ။ ခဏခဏ မေးကြ ဆွေးနွေးကြတာတွေကို Quora , stackoverflow နဲ့ အခြား blog တွေမှာ တွေ့နိုင်ပါတယ်။ Node.js ကို မကောင်းပြောရင် ပြန်ချေပချက်တွေကလည်း အများကြီးတွေ့နိုင်ပါတယ်။

ကျွန်တော့်အတွက်က Node.js ကို သုံးချင်လို့ သုံးပါတယ်။ Javascript ကို အသုံးပြုပြီးရေးရတဲ့အတွက် ရေးရတာ လွယ်ပါတယ်။ ExpressJS နဲ့ MVC ကို အသုံးပြုပြီး ရေးလို့ရတဲ့အတွက် သဘောကျပါတယ်။ Coffee Script ကို အသုံးပြုပြီး ရေးလို့ရပေမယ့် Javascript ကို ပိုသဘောကျပါတယ်။ Jade Template ကိုလည်း သဘောကျတယ်။

တကယ်တန်း အခုအချိန်မှာ PHP နဲ့ ကျွန်တော် ရေးချင်တာကို ရေးလိုက်လို့ရပါတယ်။ ExpressJS framework သုံးတာထက်တောင် ပိုမြန်ပါအုံးမယ်။ သို့ပေမယ့် ExpressJS ကိုသာ အခုအချိန်မှာ စပြီး မသုံးရင် သုံးဖြစ်ဖို့ အကြောင်း မရှိတော့ပါဘူး။

Node.js ကို အခုအချိန်မှာ Real Time Web App တွေလောက်တာ အသုံးဝင်ပါသေးတယ်။ WebSocket က Nginx အတွက် မရသေးတဲ့အတွက် လက်ရှိ အသုံးပြုနေတဲ့ Server တွေမှာ တင်ပြီး run ဖို့က အဆင်မပြေသေးပါဘူး။ Nginx 1.3 ကတော့ development stage ကိုတော့ ရောက်နေပါပြီ။

Why Mongodb ?

MySQL ထက်စာရင် Mongodb က iOS development အတွက် အဆင်အပြေဆုံးပါ။ Mongodb က JSON format နဲ့ သိမ်းပြီး iOS ဘက်မှာ NSDictionary နဲ့ ပြန်ပြောင်းလိုက်ရုံပါပဲ။ ဒီဘက်က NSDictionary ကိုလည်း JSON ပြောင်းပြီး Mongodb ထဲမှာ လွယ်လင့် တကူသိမ်းလိုက်ရုံပါပဲ။ MySQL ထက်စာရင် အများကြီး ပိုအဆင်ပြေပါတယ်။ ဒါကြောင့် Mongodb ကို iOS နဲ့ တွဲသုံးတဲ့ အခါ သုံးဖြစ်တာပါ။

Other ?

ကျွန်တော်ကတော့ အခုအချိန်မှာ PHP ထက် Node.JS ကို ပိုသဘောကျပါတယ်။ Ava framework ကိုလည်း Node.js framework ပြန်ပြင်ရေးနိုင်အောင် ကြိုးစားနေပါတယ်။ ကိုယ်ပိုင် framework ပြန်ရေးဖို့ရာ Connect Middleware ကို ကောင်းကောင်း အသုံမပြုသေးတတ်တာကြောင့် အဆင်မပြေသေးပါဘူး။ Connect ကတော့ တော်တော်လေးကို ကောင်းပါတယ်။

တကယ်လို့ node.js နဲ့ real time app တွေ ရေးချင်ရင်တော့ Derby , Meteor ကို သုံးကြည့်စေချင်တယ်။ တော်တော်လေးကို ကောင်းပါတယ်။ ပုံမှန် Web App , Restful API ဆိုရင်တော့ ExpressJS က အဆင်ပြေပါတယ်။ Socket အဓိက ပိုင်းဆိုရင်တော့ socket.io နဲ့ ရေးလို့ရပါတယ်။

အခုအချိန်ထိတော့ Node.js ကို လေ့လာနေဆဲပါပဲ။

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.