NodeJS เป็นเทคโนโลยีที่เรารู้กันว่าเป็น JavaScript ฝั่งเซิร์เวอร์ ดังนั้นก็ต้องมีพื้นฐานภาษา JavaScript จึงจะช่วยให้ทำความเข้าใจในการเขียนโค้ดบน NodeJS ได้ง่ายขึ้น ในบทความนี้จะสรุปเพียงสั้นๆที่พอให้ไปต่อได้เท่านั้น
JavaScript Value Type
ภาษา JavaScript มีการเก็บค่าอยู่ 3 แบบด้วยกัน คือ
- boolean ค่าตรรกะ true , false
- numeric ค่าตัวเลข Number.MIN_VALUE 5e-324 – Number.MAX_VALUE 1.7976931348623157e+308
- string “hello” , ‘hello’
Reference Type
การเก็บค่าแบบ Reference Type เก็บในรูปแบบยอดฮิตอย่าง JSON (JavaScript Object Notation)
{"firstName":"John", "LastName":"Doe" , "Age":30}
การประกาศตัวแปร
ใช้คำว่า var ขึ้นต้น ตามด้วยชื่อตัวแปรตามกฎการตั้งชื่อของภาษาทั่วๆไป
var a = "Hello NodeJS" , b = false , c = 99.999;
- หากเราประกาศตัวแปรขึ้นมาเลยไม่มี var จะกลายเป็น Global variable เช่น d =”Hello JavaScript”;
- ความน่ากล้วของ JavaScript คือความยืดหยุ่นสูง ไม่เป็นภาษาแบบ typesafe คือวันดีคืนดีเราประกาศตัวแปรเป็นตัวเลขไว้ เช่น var a = 1; อยู่ดีๆเปลี่ยนเป็น a = “Hello” ก็ไม่ผิดแต่อย่างใด แต่โปรแกรมที่เราเขียนไว้ผิดได้แน่นอน ถ้าเราเอา a ไปบวกตัวเลขต่อ เป็นปัญหาที่คนเขียน JavaScript เจอบ่อยๆและต้องระวังอย่างมาก
การประกาศฟังก์ชั่น
มีรูปแบบตามโค้ดด้านล่าง
function functionName (){
//โค้ด ;
}
var f = function(){
}
// การเรียกใช้
f();
การเก็บค่าแบบอาร์เรย์
var d = [1,2,3,4,5,"Test","JavaScript"];
var f = [{id:1,fname:'John',lname:"Doe"},{id:2,fname:"Jane",lname:"Doe"}];
เงื่อนไข if else
var time = new Date().getHours();
if (time < 20) {
console.log("Good day");
}else {
console.log("Good evening");
}
switch
var day;
switch (new Date().getDay()) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thursday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
break;
default:
day = "Unknown Day";
}
for ลูป
var text = "";
var i;
for (i = 0; i < 5; i++) {
text += "The number is " + i + "<br>";
}
เราสามารถนำโค้ด JavaScript มาทดสอบใน Browser ได้เลย เช่น ใน Google Chrome หรือ Firefox ให้เข้าหน้า Console

อยากศึกษา JavaScript เพิ่มเติมมีแหล่งศึกษาดีๆมากมาย เช่น http://www.w3schools.com/jsref/default.asp
มาเขียนโค้ดใน NodeJS กันดีกว่า
Module โมดูล คือ
ในการพัฒนาแอพพลิเคชั่น กว่าจะได้แอพมาหนึ่งตัว โค้ดมากมายมหาศาลหลายหมื่นถึงล้านบรรทัดแน่นอนแล้วแต่ขนาดของซอฟท์แวร์ แม้ว่าภาษาสมัยใหม่เดี๋ยวนี้จะใช้โค้ดที่สั้นลงแล้วก็ตาม ดังนั้นเพื่อความเป็นระเบียบ นำสิ่งที่เคยพัฒนาไว้แล้วกลับมาใช้ใหม่ เราจึงจำเป็นต้องเข้าใจการพัฒนาแบบโมดูล
- สร้างไฟล์ชื่อ aggregation.js
- ป้อนโค้ด ดังนี้
exports.sum = function(){
this._sum = 0;
for (var i = 0; i < arguments.length; i++) {
this._sum+=arguments[i];
}
}
exports.avg = function(){
this._sum = 0;
for (var i = 0; i < arguments.length; i++) {
this._sum+=arguments[i];
}
this._avg = this._sum / arguments.length;
}
3. สร้างไฟล์ชื่อ ch3_module.js
4. ป้อนโค้ด ดังนี้
var a = require('./aggregation');
a.sum(1,2,4,5,6,7);
console.log(a._sum);
a.avg(4,2,5,6,7,9,18,11);
console.log(a._avg);
5. เปิดโปรแกรม Terminal หรือ Command Line ใน Window เข้าไปที่ path ของไฟล์ ch3_module.js พิมพ์
node ch3_module.js
25
7.75
อธิบายโค้ด
- exports เป็นออบเจคที่ใช้ประกาศเป็น module ให้เรียกใช้งานได้
- exports.sum = function() ประกาศฟังก์ชั่นสำหรับใช้บวกค่า
- JavaScript มือใหม่อาจจะงงถ้าเขียนภาษาอื่นมา ก็ sum = function() ในวงเล็บไม่เห็นระบุตัวแปรอะไรมาแล้วจะเอาอะไรมาบวกกันได้ ใน arguments จะเป็นการเก็บค่าตัวแปรต่างๆไว้ ซึ่งภาษา JavaScript มันยืดหยุ่นมากให้เราป้อนค่าอะไรมาก็ได้ ดังนั้นถ้าค่าที่เราป้อนมาไม่ใช่ตัวเลขทั้งหมด ฟังก์ชั่นนี้ก็ทำงานผิดวัตถุประสงค์แน่ๆ
- ที่ไฟล์ ch3_module.js เราอ้างถึงฟังก์ชั่นที่เขียนไว้แล้วใน aggregation.js โดยใช้คำสั่ง
var a= require('./aggregation');
ก็จะได้ฟังก์ชั่น sum กับ avg ในโค้ด aggregation.js มา ในการใช้ require ไฟล์ที่อ้างถึงไม่ต้องใช้ .js nodejs จะเติมให้เอง การอ้างพาธใน nodejs นั้น ในการใช้งานจริง ./ ,../, ../../ ควรอ้างแบบไหนบ้างนั้นเป็นเรื่องที่หน้าปวดหัวมาก ในการเขียนแอพใช้งานจริง ผมใช้ไลบรารี่ชื่อ rootpath อ้างแบบเดียวไปเลย และเป็นการสร้างมาตรฐานที่ดีให้กับทีมด้วยหากต้องพัฒนาหลายๆคน ใครใจร้อนขี้เกียจรอบทความก็ไปลองใช้ดูได้ https://www.npmjs.com/package/rootpath
พบกับตอนหน้า Express Web Framework