การแสดงผลออกทางหน้าจอ บน Node.js
การแสดงผล (Output) นั้นเป็นส่วนหนึ่งของการทำงานพื้นฐานของโปรแกรม โดยปกติแล้วโปรแกรมมักจะตอบสนองกับผู้ใช้ผ่านการรับค่าและการแสดงผล การแสดงผลหมายถึงการแสดงข้อความหรือผลลัพธ์การทำงานของโปรแกรมผ่านทางหน้าจอ (Terminal หรือ Console) ในบทนี้คุณจะได้เรียนรู้เกี่ยวกับการแสดงผลบน Node.js
- การแสดงผลด้วยฟังก์ชัน console.log
- การแสดงผลด้วย process.stdout
- console.error และ process.stderr
การแสดงผลด้วยฟังก์ชัน console.log
เมื่อต้องการแสดงผลบางอย่างออกทางหน้าจอบน Node.js เราใช้ฟังก์ชัน console.log
โดยฟังก์ชันนี้เป็นฟังก์ชันของภาษา JavaScript สำหรับแสดงผลข้อมูลออกทางหน้าจอ และ Node.js ใช้มันเพื่อส่งข้อมูลไปยัง Standard output ซึ่งเป็นจอภาพเพื่อแสดงโดยตรง
ฟังก์ชัน console.log
สามารถใช้สำหรับแสดงข้อมูลทุกประเภทในภาษา JavaScript ออบเจ็คที่ส่งเข้าไปยังฟังก์ชันจะถูกแปลงเป็น String ก่อนการแสดงผลเพื่อส่งออกไปยัง Output stream นี่เป็นตัวอย่างการใช้ฟังก์ชัน console.log
สำหรับแสดงข้อมูลออกทางหน้าจอบน Node.js
console.log('marcuscode');
console.log(2021);
console.log({ id: 1, name: 'Metin' });
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
marcuscode
2021
{ id: 1, name: 'Metin' }
ในตัวอย่างนี้ เราใช้ฟังก์ชัน console.log
สำหรับแสดงข้อมูลสามประเภทออกทางหน้าจอ ได้แก่ String ตัวเลข และออบเจ็ค สังเกตว่าหลังจากการแสดงผลแต่ครั้ง ฟังก์ชัน console.log
จะทำการขึ้นบรรทัดใหม่ด้วยเสมอ นี่เป็นวิธีการทำงานพื้นฐานของมัน
นอกจากนี้ คุณสามารถส่งหลายพารามิเตอร์เข้าไปยังฟังก์ชันได้ ถ้าหากทำเช่นนี้ แต่ละพารามิเตอร์จะถูกแสดงผลโดยคั่นด้วยช่องว่าง ซึ่งนี่มีประโยชน์เมื่อคุณต้องการแสดงหลายค่าในคำสั่งเดียว และไม่ต้องการให้ข้อความขึ้นบรรทัดใหม่
console.log('One', 'Two', 'Three');
console.log('I have', 3, 'Apples');
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
One Two Three
I have 3 Apples
การแสดงผลด้วย process.stdout
นอกจากการแสดงผลด้วยฟังก์ชัน console.log
แล้ว บน Node.js เรายังสามารถแสดงผลโยการใช้ออบเจ็ค process.stdout
ได้ นี่เป็นการส่งข้อมูลไปแสดงยัง Standard output โดยตรง ในการใช้งานวิธีนี้ คุณจะต้องควบคุมข้อมูลสำหรับการแสดงผลด้วยตัวเอง นี่เป็นตัวอย่าง
process.stdout.write("Hello");
process.stdout.write("Node.js");
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
HelloNode.js
ออบเจ็ค stdout
เป็นออบเจ็คที่สร้างมาจากอินเตอร์เฟซ WritableStream
ที่เชื่อมต่อกับหน้าจอแสดงผลโดยตรง ในการส่งข้อมูลออกไปสำหรับการแสดงผลเราเรียกใช้เมธอด write
บนออบเจ็ค โดยการส่ง String หรือ Buffer เป็นพารามิเตอร์ของเมธอด
สังเกตว่าในการใช้เมธอด write
ในการแสดงผลจะไม่มีการขึ้นบรรทัดใหม่ เพื่อที่จะให้มีการขึ้นบรรทัดใหม่คุณจะต้องทำมันด้วยตัวเอง โดยการใช้ "\n"
ภายใน String ดังตัวอย่างต่อไปนี้
process.stdout.write("Hello\n");
process.stdout.write("Node.js");
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
Hello
Node.js
เพื่อทำให้การแสดงผลของโปรแกรมขึ้นบรรทัดใหม่หลังจาก Hello
โดย "\n"
นั้นเป็นตัวอักษรพิเศษหรือ Escape charecter ที่แสดงถึงการขึ้นบรรทัดใหม่ในภาษา JavaScript
นอกจากนี้ เมธอด stdout.write
ยังสามารถรับพารามิเตอร์เป็น Uint8Array
หรือออบเจ็คที่ถูกสร้างมาจากคลาส Buffer
ได้ ในตัวอย่างต่อไปนี้ เราส่ง Buffer เป็นพารามิเตอร์ของเมธอดสำหรับการแสดงผล
let buffer = new Uint8Array([77, 101, 116, 105, 110]);
process.stdout.write(buffer);
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
Metin
เราสร้างอาเรย์ของ Buffer จากคลาส Uint8Array
โดยกำหนดค่าเป็นอาเรย์ของตัวเลขจำนวนเต็มที่แสดงถึงข้อความ "Metin" โดยหนึ่งตัวเลขคือหนึ่งตัวอักษร จากนั้นเราแสดงข้อมูลนี้ออกทางหน้าจอด้วยเมธอด write
ซึ่งข้อมูลจะถูกแปลงเป็นตัวอักษรที่สอดคล้องกับรหัสของ ASCII Code ของข้อมูลเสมอ
ข้อควรระวัง: เมธอด
stdout.write
จะรับพารามิเตอร์เป็น String หรือ Buffer เท่านั้น ถ้าหากคุณส่งประเภทข้อมูลอื่น เช่น ตัวเลข หรือออบเจ็ค นั่นจะทำให้เกิดข้อผิดพลาดขึ้น เนื่องจากมันเป็นประเภทข้อมูลที่ไม่สนับสนุนโดยเมธอด
console.error และ process.stderr
ในการแสดงผลยังมีอีกฟังก์ชันหนึ่งที่ถูกใช้งานบ่อยๆ นั่นคือฟังก์ชัน console.error
มันใช้สำหรับแสดงผลที่เป็นข้อผิดพลาดของโปรแกรม นี่จะช่วยให้เราสามารถแยกการแสดงผลออกจากการแสดงผลปกติได้ และเราสามารถตั้งค่าให้แสดงผลนี้เขียนลงบนไฟล์ Error logs สำหรับการตรวจสอบข้อผิดพลาดที่เกิดขึ้น
นี่เป็นตัวอย่างของการใช้ฟังก์ชัน console.error
สำหรับแสดงข้อความที่มีความหมายว่าเป็นข้อผิดพลาดในโปรแกรม
console.error("This is an error.");
นี่เป็นผลลัพธ์การทำงานของโปรแกรมบน Console
This is an error.
การแสดงผลจะเหมือนกับฟังก์ชัน console.log
เว้นแต่ว่าในบางสภาพแว้ดล้อมการทำงาน เช่น เว็บบราวน์เซอร์ หรือ Console ที่ใช้รันโปรแกรม การแสดงผลของข้อความอาจเป็นสีแดง นี่จะช่วยในการแยกแยะระหว่างการแสดงผลปกติ และการแสดงผลที่เป็นข้อผิดพลาดของโปรแกรมได้ง่ายขึ้น
ฟังก์ชัน console.error
ส่งข้อมูลสำหรับไปส่งผลโดยตรงที่ Standard error หรือออบเจ็ค process.stderr
นั่นหมายความว่าในตัวอย่างก่อนหน้า คุณสามารถเขียนแบบนี้เพื่อให้ได้ผลลัพธ์เช่นเดียวกัน
process.stderr.write("This is an error.\n");
ในบทนี้ คุณได้เรียนรู้เกี่ยวกับการแสดงผลบน Node.js เราได้พูดถึงฟังก์ชันสำหรับการแสดงผลแบบปกติโดยฟังก์ชัน console.log
และการแสดงผลในกรณีที่โปรแกรมเกิดข้อผิดพลาดโดยการใช้ฟังก์ชัน console.error