การเขียนโปรแกรมบน Node.js ด้วยภาษา JavaScript
ในบทนี้ เป็นบทเริ่มต้นการเขียนโปรแกรมบน Node.js และอย่างที่เราได้แนะนำไปแล้วในบทก่อนหน้า การเขียนโปรแกรมบน Node.js จะใช้ภาษา JavaScript ดังนั้นถ้าคุณยังไม่คุ้นเคยกับโครงสร้างและไวยากรณ์ของภาษา คุณสามารถเรียนรู้เกี่ยวกับภาษา JavaScript ได้ที่บทเรียนภาษา JavaScript
- โปรแกรมแรกบน Node.js
- การรันโปรแกรมบน Node.js
- ตัวอย่างโปรแกรมบวกตัวเลข
- ตัวอย่างการรับค่าผ่านทางคีย์บอร์ด
โปรแกรมแรกบน Node.js
โปรแกรมแรกที่มักใช้สำหรับเรียนรู้การเขียนโปรแกรมในทุกภาษาก็คือ โปรแกรมแสดงข้อความอย่างง่ายออกทางหน้าจอ เราจะมาเขียนโปรแกรมที่แสดงคำกล่าวทักทายบน Node.js ด้วยภาษา JavaScript นี่เป็นโค้ดของโปรแกรม
console.log("Hello World!");
นี่เป็นโปรแกรมสำหรับแสดงข้อความ "Hello World!" ออกทางหน้าจอ (ผ่านทาง Console หรือ Terminal) เราใช้ฟังก์ชัน console.log
จากโมดูล console
สำหรับการแสดงผล คุณสามารถเปลี่ยนข้อความที่ต้องการแสดงเป็นชื่อของคุณได้
ฟังก์ชัน console.log
เป็นฟังก์ชันในภาษา JavaScript สำหรับแสดงข้อมูลออกทางหน้าจอ และ Node.js ใช้มันสำหรับส่งข้อมูลไปแสดงผลที่ช่องทางการแสดงผลมาตรฐาน stdout (Standard output) โดยตรง
การรันโปรแกรมบน Node.js
หลังจากที่เขียนและบันทึกไฟล์โปรแกรมเรียบร้อยแล้ว ต่อไปจะเป็นการรันโปรแกรมเพื่อดูผลลัพธ์การทำงานของมัน เพื่อรันโปรแกรมภาษา JavaScript บน Node.js เราใช้คำสั่ง node
ผ่านทาง Command line ตามรูปแบบต่อไปนี้
node file_name.js
หรือ
node c:/path/to/file_name.js
เพื่อรันโปรแกรมเราใช้คำสั่ง node
ตามด้วยชื่อไฟล์หรือที่อยู่ของไฟล์ในรูปแบบเต็ม จากตัวอย่างก่อนหน้า เพื่อรันโปรแกรม hello_world.js
คุณสามารถพิมพ์คำสั่งต่อไปนี้ลงบน Command line หรือ Terminal ของคุณ
node hello_world.js
ซึ่งจะได้ผลลัพธ์การทำงานของโปรแกรมดังนี้
Hello World!
นั่นหมายความว่าเราสามารถเขียนและรันโปรแกรมแรกของเราบน Node.js ได้สำเร็จ
Note: ในการรันโปรแกรมคุณจะต้องเปิด Command line ในโฟล์เดอร์เดียวกันกับไฟล์ที่โปรแกรมอยู่ ไม่เช่นนั้นคุณจะต้องระบุที่อยู่ของไฟล์ในรูปแบบเต็ม ยกตัวอย่างเช่น
node c:/path/to/file_name.js
ตัวอย่างโปรแกรมบวกตัวเลข
มาดูตัวอย่างต่อไปสำหรับการเขียนโปรแกรมบน Node.js ในตัวอย่างนี้ เราจะมาเขียนโปรแกรมสำหรับหาผลรวมของตัวเลข โดยการใช้ความรู้พื้นฐานทางคณิตศาสตร์ นั่นก็คือการบวกเลข นี่เป็นโค้ดของโปรแกรม
function add(a, b) {
return a + b;
}
let apple = 3;
let banana = 2;
let total = add(apple, banana);
console.log("I have %d apples.", apple);
console.log("You have %d bananas.", banana);
console.log("We have %d fruits in total.", total);
นี่เป็นผลลัพธ์ที่เราได้รับเมื่อรันโปรแกรมข้างต้น
I have 3 apples.
You have 2 bananas.
We have 5 fruits in total.
ในตัวอย่างนี้ เป็นโปรแกรมสำหรับหาผลรวมของผลไม้ทั้งหมดจากผลไม้แต่ละชนิดที่มี เราได้แนะนำการใช้งานตัวแปรและฟังก์ชันให้กับคุณ
function add(a, b) {
return a + b;
}
เราได้ประกาศฟังก์ชัน add
สำหรับหาผลรวมของตัวเลขจากพารามิเตอร์ที่ส่งเข้ามายังฟังก์ชัน และส่งค่ากลับเป็นผลรวมของพารามิเตอร์ทั้งสองจากนิพจน์ a + b
ด้วยคำสั่ง return
let apple = 3;
let banana = 2;
จากนั้นเราประกาศสองตัวแปรสำหรับเก็บจำนวนผลไม้แต่ละชนิดที่มี ตัวแปร apple
นั้นใช้สำหรับเก็บจำนวนของลูกแอปเปิ้ล และตัวแปร banana
นั้นใช้สำหรับเก็บจำนวนของกล้วยที่มี
let total = add(apple, banana);
หลังจากที่เรามีจำนวนของผลไม้แต่ละชนิดเก็บไว้ในตัวแปรแล้ว เราสามารถใช้ฟังก์ชัน add
ที่ประกาศไว้ก่อนหน้าสำหรับหาผลรวมของจำนวนผลไม้ทั้งสองชนิดนี้ได้ และเราจะได้ผลรวมของผลไม้ทั้งหมดมาเก็บไว้ในตัวแปร total
console.log("I have %d apples.", apple);
console.log("You have %d bananas.", banana);
console.log("We have %d fruits in total.", total);
ในตอนท้ายเราแสดงข้อมูลของผลไม้ออกทางหน้าจอ ได้แก่ จำนวนของผลไม้แต่ละชนิดและผลรวมของผลไม้ทั้งหมดที่ได้จากการคำนวณ
ในตัวอย่างนี้ได้แสดงให้คุณเห็นถึงวิธีการประกาศตัวแปร การประกาศฟังก์ชัน และการนำฟังก์ชันมาใช้งาน ซึ่งเป็นเรื่องพื้นฐานที่ต้องทราบในการเขียนโปรแกรม
ตัวอย่างการรับค่าผ่านทางคีย์บอร์ด
ในตัวอย่างนี้ เราจะมาเขียนโปรแกรมที่สามารถรับค่าจากผู้ใช้งานเพื่อนำมาใช้ในโปรแกรม โดยทั่วไปแล้วช่องทางการรับค่าพื้นฐานของโปรแกรมแบบ Command line มักจะมาจากทางคีย์บอร์ด
นี่เป็นโปรแกรมที่จะถามชื่อของคุณและขอให้คุณกรอกชื่อเข้ามายังโปรแกรม จากนั้นโปรแกรมจะแสดงคำกล่าวทักทายคุณ และบอกคุณว่าชื่อของคุณมีความยาวกี่ตัวอักษร นี่เป็นโค้ดของการทำงานของโปรแกรม
const readline = require('readline');
const readInterface = readline.createInterface({
input: process.stdin,
output: process.stdout
});
readInterface.question('What\'s your name? ', name => {
console.log(`Hi ${name}!`);
console.log(`Your name has ${name.length} characters.`);
readInterface.close();
});
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
What's your name? Metin
Hi Metin!
Your name has 5 characters.
โค้ดต่อไปนี้ทำงานหลายอย่าง เราจะมาอธิบายการทำงานของมันทีละส่วน
const readline = require('readline');
Node.js นั้นมีโมดูลมาตรฐานที่ชื่อว่า readline
เราสามารถใช้มันเพื่ีอรับค่าที่ละบรรทัดจาก Readable stream เข้ามาใช้งานในโปรแกรม ในกรณีนี้คือคีย์บอร์ด
const readInterface = readline.createInterface({
input: process.stdin,
output: process.stdout
});
ในคำสั่งนี้เป็นการใช้เมธอด createInterface
สำหรับสร้างช่องทางเชื่อมต่อสำหรับการรับค่าและการแสดงผล เราได้ทำการเชื่อมต่อช่องทางการรับค่าและการแสดงผลเป็น process.stdin
และ process.stdout
ซึ่งเป็นคีย์บอร์ดและหน้าจอ ตามลำดับ
readInterface.question('What\'s your name? ', name => {
console.log(`Hi ${name}!`);
console.log(`Your name has ${name.length} characters.`);
readInterface.close();
});
เมธอด question
ใช้สำหรับรับค่าทีละบรรทัดจากคีย์บอร์ด พารามิเตอร์แรกเป็นข้อความที่ต้องการแสดงให้ผู้ใช้งานโปรแกรมทราบก่อนการรับค่า พารามิเตอร์ที่สองเป็นฟังก์ชัน Callback ที่จะถูกเรียกใช้งานเมื่อการรับค่าเสร็จสิ้นจากการกดปุ่ม Enter ซึ่งค่าที่รับเข้ามาจะถูกส่งมาผ่านทางพารามิเตอร์ name
ในบทนี้ คุณได้เรียนรู้การเขียนและรันโปรแกรมภาษา JavaScript บน Node.js สำหรับการแสดงผลข้อความออกทางหน้าจอ และการรับค่าจากทางคีย์บอร์ดเพื่อนำมาใช้งานในโปรแกรม นี่เป็นตัวอย่างอย่างง่ายเท่านั้น ในทางปฏิบัติโปรแกรมที่เราเขียนมักมีความซับซ้อนกว่านี้มาก