การเขียนโปรแกรมบน Node.js ด้วยภาษา JavaScript

ในบทนี้ เป็นบทเริ่มต้นการเขียนโปรแกรมบน Node.js และอย่างที่เราได้แนะนำไปแล้วในบทก่อนหน้า การเขียนโปรแกรมบน Node.js จะใช้ภาษา JavaScript ดังนั้นถ้าคุณยังไม่คุ้นเคยกับโครงสร้างและไวยากรณ์ของภาษา คุณสามารถเรียนรู้เกี่ยวกับภาษา JavaScript ได้ที่บทเรียนภาษา JavaScript

  • โปรแกรมแรกบน Node.js
  • การรันโปรแกรมบน Node.js
  • ตัวอย่างโปรแกรมบวกตัวเลข
  • ตัวอย่างการรับค่าผ่านทางคีย์บอร์ด

โปรแกรมแรกบน Node.js

โปรแกรมแรกที่มักใช้สำหรับเรียนรู้การเขียนโปรแกรมในทุกภาษาก็คือ โปรแกรมแสดงข้อความอย่างง่ายออกทางหน้าจอ เราจะมาเขียนโปรแกรมที่แสดงคำกล่าวทักทายบน Node.js ด้วยภาษา JavaScript นี่เป็นโค้ดของโปรแกรม

hello_world.js
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 ในตัวอย่างนี้ เราจะมาเขียนโปรแกรมสำหรับหาผลรวมของตัวเลข โดยการใช้ความรู้พื้นฐานทางคณิตศาสตร์ นั่นก็คือการบวกเลข นี่เป็นโค้ดของโปรแกรม

fruits.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 มักจะมาจากทางคีย์บอร์ด

นี่เป็นโปรแกรมที่จะถามชื่อของคุณและขอให้คุณกรอกชื่อเข้ามายังโปรแกรม จากนั้นโปรแกรมจะแสดงคำกล่าวทักทายคุณ และบอกคุณว่าชื่อของคุณมีความยาวกี่ตัวอักษร นี่เป็นโค้ดของการทำงานของโปรแกรม

getting_input.js
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 สำหรับการแสดงผลข้อความออกทางหน้าจอ และการรับค่าจากทางคีย์บอร์ดเพื่อนำมาใช้งานในโปรแกรม นี่เป็นตัวอย่างอย่างง่ายเท่านั้น ในทางปฏิบัติโปรแกรมที่เราเขียนมักมีความซับซ้อนกว่านี้มาก