Saturday, December 23, 2017

การติดตั้ง Node.js บน CentOS Linux 7


  Node.js เป็น JavaScript runtime สร้างบน Chrome’s V8 JavaScript engine โดย Node.js เป็นซอฟต์แวร์ประเภทโอเพ่นซอร์สที่เขียนโปรแกรมฝั่งเซิร์ฟเวอร์ (server-side programming) เช่นเดียวกับกับภาษา PHP, JSP หรือ ASP.NET ใช้ event-driven, non-blocking I/O model ทำให้เครื่องเบาและมีประสิทธิภาพสูง Node.js เป็น Cross Platform Runtime Environment สามารถติดตั้งใช้งานได้ทั้งระบบ Windows, Linux, MacOS และคอมพิวเตอร์แบบฝังตัวตระกูล ARM เช่น Raspberry Pi, Orange Pi, BeagleBone Black, Intel Galileo เป็นต้น

  Node.js เขียนโค้ดภาษา JavaScript โดยพัฒนา Apps ครั้งเดียวสามารถใช้งานได้ทุกระบบปฏิบัติการ (โดยระบบปฏิบัติการ (OS) ที่ใช้ต้องติดตั้ง Runtime Environment ของ Node.js ไว้) คล้ายๆ กับการใช้งาน Apps ที่สร้างด้วย JAVA ในอดีตที่ผู้ใช้ต้องติด JAVA Runtime Environment



    Node.js จะมีผู้พัฒนาไลบรารีให้ใช้งานจำนวนมากมาย โดยแยกเป็น JavaScript Module ต่างๆสำหรับการทำงานเฉพาะด้านในแต่ละเรื่อง สามารถติดตั้งเพิ่มเติมผ่าน NPM หรือ Node Package Manager ซึ่ง NPM จะเป็นตัวจัดการแพ็กเกจของ JavaScript นักพัฒนาสามารถค้นหาแพ็กเกจที่ต้องการใช้งานได้จากเว็บ https://www.npmjs.com หรือเว็บอื่นที่ให้บริการ โดยติดตั้งผ่านทางบรรทัดคำสั่ง (Command Line)

Node.js เป็น Platform ตัวหนึ่งที่เขียนขึ้นมาจากภาษา Javascript และทำงานอยู่ฝั่ง Server (ทำงานเป็น Web Server ในตัว)


ข้อดีของ Node.js
1. เป็นโอเพ่นซอร์ส (Open Source) สามารถนำไปติดตั้งใช้งานได้ฟรี มีชุมชนผู้ใช้งานขนาดใหญ่
2. สนับสนุน Cross Platform Runtime Environment (พัฒนา Apps ครั้งเดียวสามารถนำไปใช้งานได้ทุก OS)
3. มีความเร็วและรองรับ concurrent จำนวนมากๆ
4. สามารถขยายระบบ (Scalable) ได้ง่าย
5. พัฒนาแอพด้วย JavaScript ทำให้ง่ายในการเรียนรู้
6. พัฒนาแอพได้ทั้งบน Website  และ Mobile Application
7. ทีมพัฒนาไม่ต้องศึกษาหลายภาษา ทำให้ช่วยลดต้นทุนของทีมพัฒนาในการศึกษาและเรียนรู้
8. มีบริษัทขนาดใหญ่เลือกใช้งาน เช่น Paypal, Netflix, Uber, Google, Ebay, Microsoft เป็นต้น
9. ค่าตอบแทน (เงินเดือนสูง) เนื่องจากมีผู้พัฒนาได้ยังมีจำนวนน้อยอยู่

แพลตฟอร์มที่สามารถใช้งาน Node.js ได้
1. Windows (x86/x64)
2. Linux  (x86/x64)
3. Mac OS s (x64)
4. FreeBSD, OpenBSD, NetBSD  (x86/x64)
5. Linux ARM (ARMv6 / ARMv7 / ARMv8)
6. SunOS  (x86/x64)
7. Docker Image
8. Linux on Power Systems  (x64 le)
9. Linux on System z  s  (x64)
10. AIX on Power Systems s  (x64)
—เว็บดาวน์โหลดตัวติดตั้งแพลตฟอร์มอื่นๆ https://nodejs.org/en/download/

การติดตั้ง Node.js บน CentOS 7
ขั้นตอน
Step1:  ทำการติดตั้ง node.js yum repository
1. ติดตั้งแพ็กเกจ gcc และ make
yum install gcc-c++ make  -y 
หรือ yum groupinstall 'Development Tools' -y

2. เลือกติดตั้ง NodeJS เวอร์ชั่นที่ต้องการ
Node.JS 6.x
curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -

--------------------
กรณีเวอร์ชั่น 8 หรือ 9 สามารถสั่งติดตั้งดังนี้
Node.JS 8.x
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -

Node.JS 9.x
curl --silent --location https://rpm.nodesource.com/setup_9.x | sudo bash -
-------------------

Step2: ติดตั้งแพ็กเกจ NodeJS และ NPM
3. ติดตั้ง EPEL repository
yum install epel-release -y

4. ติดตั้ง NodeJS
yum install nodejs npm --enablerepo=epel  -y

ติดตั้งแพ็กเกจ NodeJS


Step3:  ตรวจสอบรายละเอียด node.js
5. ตรวจสอบรายละเอียด Node.js
- ตรวสอบเวอร์ชั่น node.js
[root@huntra ~]# node -v
v6.12.0

- ตรวจสอบเวอร์ชั่น NPM
[root@huntra ~]# npm -v
3.10.10

Step 4: ทดสอบสร้าง Demo Web Server
6. ทดสอบสร้าง Demo Web Server
- สร้างไฟล์ testserver.js
[root@huntra ~]# vi  testserver.js

พิมพ์โค้ดดังนี้
ไฟล์ testserver.js
-----------------------------------------
var http = require('http');

http.createServer(function (request, response) {
 response.writeHead(200, {'Content-Type': 'text/plain'});
 response.end('Hello World ');
 }).listen(8080,"192.168.1.5");
 console.log('Server is running on http://192.168.1.5:8080/');
-----------------------------------------
คำอธิบาย
  • require('http') : เป็นการนำเข้าโมดูล http ซึ่งเป็นโมดูลหลักของ Node.js
  • createServer() : เป็นการสร้าง Server ของ Node.js โดยรับฟังก์ชั่นที่มี request และ response
  • response.writeHead() : เป็นการกำหนด Content Type
  • response.end() : เป็นการสิ้นสุด response และส่งคำว่า Hello World หรือค่าอื่นที่ต้องการ
  • .listen(port, address) : เป็นการกำหนด Port และ IP Address ของเว็บเซิร์ฟเวอร์ (ip address เป็น optional)
  • console.log() : เป็นการแสดงไฟล์ล็อกซ์กรณีเรียกใช้งานผ่านทางบรรทัดคำสั่ง
7. สั่งรันไฟล์ testserver.js
[root@huntra ~]# node testserver.js

ผลลัพธ์ที่ได้
Server is running on http://192.168.1.5:8080/


สั่งรันไฟล์ testserver.js

8. เข้าใช้งานผ่านทางเว็บเบราว์เซอร์
รูปแบบ
http://Server_ip:Port/

ตัวอย่าง เช่น
http://192.168.1.5:8080

ทดสอบ NodeJS ผ่านเว็บเบราว์เซอร์


Note.
สามารถเพิ่มความสะดวกโดยสร้างไฟล์เป็นตัวแปรเรียกใช้งาน และคำว่า request, response สามารถเขียนย่อเป็น req, res  ส่วนพอร์ตสามารถเปลี่ยนจากพอร์ต 8080 เป็น เป็นพอร์ตอื่นๆ ได้
ไฟล์ testserver2.js
----------------------------------------------
const http = require('http');
const port = 8080;
const ip = '192.168.1.5';
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World');
}).listen(port, ip);
console.log(`server is running on ${ip}:${port}`);
----------------------------------------------

แหล่งที่มาข้อมูล
  • https://nodejs.org/en/
  • https://en.wikipedia.org/wiki/Node.js
  • https://github.com/nodejs/node
  • https://www.w3schools.com/nodejs/
---
Write by Dr.Arnut Ruttanatirakul
December 23, 2017

(c) by Huntra Scholar




No comments:

Post a Comment