Making Todolist with node.js and mongo Part V

ရှေ့ပိုင်းမှာတော့ value တွေ ထည့်တာ task အသစ်ထပ်ဖြည့်တာတွေကို ပြောပြီးပါပြီ။ အခု Mongodb ကိုပဲ ရှေ့ဆက်ရအောင်။

Update Value

အခု ကျွန်တော်တို့တွေ Task တစ်ခု done ဖြစ်သွားတဲ့ အခါမှာ done ကို 1 ပြောင်းပေးပါမယ်။ ဒီတော့ လက်ရှိ object ကို update လုပ်ရပါမယ်။

> db.tasks.update({user:'saturngod',"todo.id":1},{"$set":{"todo.$.done":1}})

ဆိုပြီး ရိုက်လိုက်ပါ။

todo.id ဆိုတာက todo အောက်က id field ကို ညွှန်းလိုက်တာပါ။ id က 1 ဖြစ်ရမယ်ဆိုပြီး ညွှန်းလိုက်တာပါ။

$set ကတော့ ပြန်ပြင်ဖို့ပေါ့။ todo.$.done ဆိုတာကတော့ ကျွန်တော်တို့ ရှာတွေ့ထားတဲ့ array number အောက်က done field ကို 1 လို့ ပြင်လိုက်တာပါ။

Remove Tasks

အခု tasks ပြီးသွားတဲ့ အခါမှာ remove ပြန်လုပ်ဖို့ အတွက် ရေးပါမယ်။

> db.tasks.update({user:'saturngod',"todo.id":1},{"$unset":{"todo.$":1}})
> db.tasks.find()
{ "_id" : ObjectId("4dff403be7f8942ab28e9fcd"), "lastid" : 2, "todo" : [ null, { "id" : 2, "desc" : "world", "done" : 0 } ], "user" : "saturngod" }

အဲဒီ အခါမှာ id 1 က null value ဖြစ်သွားတာကို တွေ့မှာပါ။ ကျွန်တော်တို့ ဖျက်ချင်တဲ့ အခန်းတွေ unset လုပ်လိုက်တဲ့ အခါမှာတော့ null value ဝင်သွားပါတယ်။ ပြီးမှ null value ကို ပြန်ဖျက်ချပါမယ်။

> db.tasks.update({user:'saturngod'},{"$pull":{todo:null}})
> db.tasks.find()
{ "_id" : ObjectId("4dff403be7f8942ab28e9fcd"), "lastid" : 2, "todo" : [ { "id" : 2, "desc" : "world", "done" : 0 } ], "user" : "saturngod" }

အခုဆိုရင်တော့ tasks တွေအတွက် database မှာ စမ်းပြီးသွားသလို ဘာ command တွေ ပေးရမလဲဆိုတာလည်း သိသွားပါပြီ။ အခု Node.js ဘက်ကို ပြန်သွားရအောင်။

Node.js Modules

Node.js မှာ ကျွန်တော်တို့တွေ express module ကို အသုံးပြုပါမယ်။ Module ဆိုတာကတော့ နားလည်အောင် ပြောရင် library တစ်ခုပေါ့။ ကျွန်တော်တို့ ဒီ project မှာလည်း ကိုယ်ပိုင် module ရေးရပါမယ်။ ကျွန်တော်တို့ အသုံးပြုမယ့် pattern က MVC pattern ဖြစ်တဲ့အတွက် model တွေကို ခွဲပြီး ရေးသားသွားမှာပါ။ ကဲ အခု Model ဘယ်လို ရေးရမလဲ ကြည့်ရအောင်။

mymodule.js

var sys   = require('sys');
exports.hellworld="Hello World";
exports.goodbyeWorld = function(){
	sys.puts('Good Bye');
}

app.js

var mymod = require('./mymodule') ,
	sys   = require('sys');
	
sys.puts(mymod.hellworld);
mymod.goodbyeWorld();
$ node app.js
Hello World
Good Bye

module ရေးရတာ အရမ်းကို လွယ်ပါတယ်။ exports.yourvariable or function name ပါပဲ။

အခုဆိုရင်တော့ ကျွန်တော်တို့ Mongodb အကြောင်းကော Node.js အကြောင်း သိနေပါပြီ။ ဆက်ပြီးတော့ express framework လေးကို စမ်းကြည့်ရအောင်။

Express Web Framework

Express ဆိုတာကတော့ Node အတွက် Web Framework တစ်ခုပါ။ အရင်ဆုံး ကျွန်တော်တို့ project folder တစ်ခုဆောက်လိုက်ပြီး app.js တစ်ခု ဖန်တီးလိုက်ပါ။ ကျွန်တော်တို့တွေ express module ကို NPM နဲ့ သွင်းရအောင်။

$npm install express

app.js မှာ epxpress module ထည့်ပါမယ်။

var express= require('express');
var app    = express.createServer();
app.get('/', function(req, res){
    res.send('Hello World');
});

app.get('/:id', function(req, res){
    res.send('ID is '+req.params.id);
});

app.listen(3000);

ပြီးရင် terminal ကနေ node ကို run ပါမယ်။

$node app.js

ပြီးရင် browser ကနေ ပြီးတော့ http://localhost:3000 ကို run ကြည့်ပါ။ Hello World လို့ မြင်ရပါလိမ့်မယ်။ နောက်ပြီး http://localhost:3000/1 ကို လည်း run ကြည့်ပါ။ ID is 1 ဆိုပြီး တွေ့ရပါလိမ့်မယ်။

Leave a Reply

Your email address will not be published. Required fields are marked *