Node.js: ติดต่อกับฐานข้อมูล MongoDB… Action!

ความต้องการซอฟแวร์

– สร้างซอฟแวร์ application Customer Relationship Management(CRM) แบบเริ่มต้น คือ ต้องบันทึกข้อมูลลูกค้า(Customer) เก็บไว้ได้ เพื่อสืบค้นมาดู และแก้ไข ได้ภายหลัง

เครื่องมือที่ใช้ทำซอฟแวร์

– ซอฟแวร์ application นี้จะทำงานบน Node.js เพื่อบันทึกข้อมูลลูกค้า (Customer) ลงในฐานข้อมูล MongoDB

อ่าน spec เสร็จแล้วลงมือสร้าง application นี้กันเร้ย… Action

ติดตั้ง Node.js

– download Node.js ตัวอย่างนี้ผมใช้ Windows 7

– เมื่อติดตั้งเสร็จ  run Windows PowerShell ขึ้นมาพิมพ์คำสั่ง (วิธี run ง่ายๆไปที่ Start แล้ว click ไปที่ช่องค้นหาพิมพ์คำว่า pow ลงไป เลือก Windows PowerShell)

node -v

จะแสดงหน้าจอแบบข้างล่างนี้ นั่นหมายความว่างานนี้เราทำสำเร็จแล้ว

setup-node-1

ติดตั้ง MongoDB

– download MongoDB ตัวอย่างนี้ผมเลือก Windows-32 bit

– แตก zip file mongodb วางไว้ตรงไหนของ drive บนเครื่องเราสักที่ ตัวอย่างนี้ผมวางไว้ที่ drive C:\mongodb

– เพิ่ม Environment Variables… โดยไปที่ Start click ขวาที่ Computer เลือก Properties > Advanced System Setting >  Environment Variables… ครับ แล้วเพิ่มตัวแปร  MONGODB_HOME กำหนดให้เท่ากับ C:\mongodb และ แก้ไข System Variables Path เพิ่มเติมเหมือนตามภาพข้างล่างนี้

setup-mongodb-1

– สร้าง folder db ไว้เก็บข้อมูลของ mongodb ตัวอย่างนี้ผมสร้าง folder ไว้ที่ C:\db

– Start MongoDB server โดยเปิด Windows PowerShell ขึ้นมาอีกอัน พิมพ์คำสั่ง

mongod –dbpath c:\db

 ดูตัวอย่างภาพข้างล่างนี้

setup-mongodb-2

– ทดสอบ MongoDB server โดยการ connect ดู โดยเปิด Windows PowerShell อีกอันขึ้นมา แล้วพิมพ์คำสั่งข้างล่างนี้ลงไป

mongo

ถ้าแสดงเหมือนภาพตัวอย่างของผมข้างล่างนี้ เป็นอันว่า MongoDB server ของเราใช้ได้แล้ว

setup-mongodb-3

ติดตั้งพร้อมแล้ว ก็มาประดิษฐ์ซอฟแวร์ กันเถอะ

– สร้าง folder application ผมตั้งชื่อว่า CRM ตัวอย่างนี้ผมสร้างไว้ที่ drive C:\CRM

– เพิ่ม file package.json แล้วเขียน config ตามข้างล่างนี้ลงไป เขียนเสร็จแล้วก็บันทึกไว้

{

“name”: “StartUp-CRM”,
“description”: “Hello CRM on Node.js with MongoDB”,
“version”: “0.0.1”,
“private”: true,
“dependencies”: {

“mongoose”: “3.5.7”

}

}

ตัวอย่างนี้ผมเลือก Mongoose ซึ่งเป็น node.js module driver ไว้เพื่อ connect กับฐานข้อมูล MongoDB คุณสามารถตรวจสอบ version ล่าสุดของ Mongoose เพื่อกำหนด version ล่าสุดที่จะ install ได้ในที่นี้ต้องการ fix version ไว้เป็น 3.5.7 โดยเปิด PowerShell ขึ้นมา แล้วพิมพ์คำสั่ง

npm info mongoose version

– ติดตั้ง node module ที่ต้องการด้วย npm เปิด Windows PowerShell อีกอันขึ้นมา แล้ว cd ไปที่ drive ที่เราสร้าง file package.json ไว้แล้วข้างต้น ตัวอย่างนี้คือ C:\CRM แล้วพิมพ์คำสั่ง

npm install

ถ้าแสดงผลตามภาพข้างล่างนี้ เป็นอันว่าเราทำงานนี้สำเร็จ

npm-install-1

– สร้าง file app.js ใส่ไว้ที่เดียวกับ file package.json มันก็คือ folder CRM นั่นเอง แล้วเขียน javascript ตามข้างล่างนี้ลงไป

var mongoose = require(‘mongoose’);

mongoose.connect(‘mongodb://localhost:27017/crm’, function (err) {

if (err) {

console.log(‘เราไม่สามารถ connect ไปยัง mongo ได้’);

}

});

var customerSchema = mongoose.Schema({

firstName: String,
lastName: String,
shortName: String,
company: String,
tag: String,
address: {

houseNo: String,
soi: String,
subDistric: String,
distric: String,
province: String,
postcode: Number,
country: String

},
website: String,
jobPosition: String,
phone: String,
mobile: String,
fax: String,
email: String,
title: String,
birthDate: Date

});

customerSchema.methods.getFullName = function () {

return this.firstName + ‘ ‘ + this.lastName;

}

var Customer = mongoose.model(‘Customer’, customerSchema);
var chavp = new Customer({

firstName: ‘Parinya’,
lastName: ‘Chavanasuvarngull’,
shortName: ‘ChavP’,
tag: ‘noob’,
address: {

province: ‘Bangkok’,
country: ‘Siam’

},

jobPosition: ‘programmer’

});

chavp.save(function (err, chavp) { // บันทึก customer chavp ลงฐานข้อมูล crm ใน MongoDB server

if (err) {
// ทำอะไรก็ได้ เมื่อเกิด error จากการ save ข้อมูลนี้
}else{

console.log(‘Save ‘ + chavp.getFullName() + ‘ into CRM completed’); // แสดงออกมาเมื่อ บันทึก Customer เข้าระบบแล้ว

}

});

– ต่อไปก็จะ run application นี้กัน ไปที่ Windows PowerShell ที่เปิดค้างไว้อยู่เพื่อ install npm module หรือเปิด PowerShell ตัวใหม่ขึ้มาก็ได้แล้ว cd ไปที่ C:\CRM แล้วพิมพ์คำสั่ง

node app

ก็จะเป็นการ run file app.js ซึ่งมันก็จะบันทึกข้อมูล customer chavp จาก code app.js ที่ได้เขียนไปนั้น เข้าไปใน MongoDB server แล้วนั่นเอง

– ตรวจสอบผลการบันทึก เปิด PowerShell ใหม่ขึ้นมาแล้ว connect ไปที่ MongoDB server ที่ database crm โดยพิมพ์คำสั่ง

mongo crm 

– นับจำนวน record customers โดยพิมพ์คำสั่ง

db.customers.count() 

verify-data-1

จากคำสั่งนับจำนวน records ของ customers คาดหวังว่าจะได้เท่ากับ 1 records เหมือนภาพข้างบนนะครับ หรือมากกว่า 1 ก็ได้ เพราะอาจจะกด run app.js นี้หลายครั้ง ก็เป็นอันว่าเสร็จงานนี้แล้ว และนี่ SourceCode ของบล็อคนี้ครับ

OK ผมก็ขอจบบทความ Node.js: ติดต่อกับฐานข้อมูล MongoDB… Action! เพียงเท่านี้ ก็ลองไป Action ดูครับ ติดปัญหา หรือบทความนี้ผิดพลาดอะไรไป ก็ email มาถาม มาคุยให้รับรู้กันได้นะครับ แล้วกลับมาเจอกันใหม่

ขอบคุณครับ

#:P

Advertisements

#node-js, #nosql