มารู้จักกับ node.js และการติดตั้ง node.js

Node.js เป็นการใช้ V8 JavaScript engine ของ Google ที่ open source มาสร้าง Web Server ที่ใช้ภาษา JavaScript ในการพัฒนา Web App เพื่อจุดประสงค์ Web App ที่ได้นั้นมีความสามารถในลักษณะ event-driven I/O เป็นหลัก ซึ่งเป็นลักษณะที่เมื่อมีการเปลี่ยนแปลงข้อมูลที่ฝั่ง Server ข้อมูลที่ฝั่ง Client ก็จะเปลี่ยนแปลงไปโดยที่ฝั่ง Client ไม่ต้อง Reload ข้อมูลใหม่แต่อย่างใด หรืออาจจะเรียกว่า Ajax Push (Reverse Ajax) ก็ได้

Node.js นั้นมีความง่ายและพัฒนาในการนำไปใช้งานไม่ยากนัก ซึ่งการใช้ Node.js ต้องลงแยกจาก Web Server หลักของระบบอย่าง Apache หรือ lighttpd เพราะใช้ลักษณะการทำงานไม่เหมือนกัน แต่ถ้าต้องการที่จะใช้ผ่าน port 80 ก็สามารถทำได้ถ้าเป็น Apache โดยผ่าน mod_proxy แล้ว reverse port ต่อไปได้ ตัวอย่างเช่น

[apache;localhost:80/api] -> [node.js;127.0.0.1:8000]

ในการติดตั้งนี้ผมอ้างอิงการติดตั้งบน Ubuntu Server 10.04 เป็นหลัก โดยการติดตั้งนั้นจะมีการลง package ที่จำเป็นสำหรับการพัฒนาในอนาคต เช่นรองรับ MySQL, Redis, Memcached, WebSocket, และการทำงานร่วมกับ PHP ผ่าน Dnode เป็นต้นครับ


# ใช้ sudo -s ก่อนจะที่ดีที่สุดอาจติด permission ได้
# ติดตั้ง package ที่จำเป็น

  1. sudo apt-get install g++ curl libssl-dev apache2-utils git-core

# ดาวน์โหลดและติดตั้งด้วยการ Make Install node.js ในรุ่น 2011.11.04 v0.6.0 (stable)

  1. wget http://nodejs.org/dist/v0.6.0/node-v0.6.0.tar.gz
  2. gunzip node-v0.6.0.tar.gz
  3. tar -xf node-v0.6.0.tar.gz
  4. cd node-v0.6.0
  5. ./configure
  6. make
  7. sudo make install

# ติดตั้ง package manager for node

  1. curl http://npmjs.org/install.sh | sh

# ติดตั้ง mysql บน node

  1. npm install mysql

# ติดตั้ง redis บน node ในกรณีที่ใช้ร่วมกับ redis

  1. npm install redis

# ติดตั้ง memcached บน node ในกรณีที่ใช้ memcached

  1. npm install memcached

# ติดตั้ง jsdom บน node ในกรณีที่ใช้ jsdom

  1. npm install jsdom

# ติดตั้ง socket.io บน node ในกรณีที่ใช้ socket.io

  1. npm install socket.io

# ติดตั้ง dnode บน node ในกรณีที่ใช้ dnode

  1. npm install dnode

แก้ไข “Fix: npm WARN htmlparser@1.7.3 package.json: bugs[‘web’] should probably be bugs[‘url’]
ให้ทำการ remove htmlparser@1.7.3 ออกไปก่อน เพราะตัว master มีปัญหา ให้ใช้ตัวที่ patch ไว้แล้วไปก่อน (จนกว่าจะโดน merge เข้า master)

  1. npm remove htmlparser
  2. npm install https://github.com/TooTallNate/node-htmlparser/tarball/patch-1

ติดตั้ง node.js และ package ทั้งหมดที่จำเป็นเช่นการติดต่อกับ MySQL, Redis/Memecached สำหรับ Caching และพวก protocal เสริมสำหรับการพัฒนาที่ง่ายขึ้นก็เตรียมตัวสำหรับการทำ Ajax Push ได้แล้ว

อ้างอิง

Leave a Reply