เขียนสคริปต์ที่รับอาร์กิวเมนต์ด้วย process.argv อ่านตัวแปรสภาพแวดล้อม และคืนรหัสออก
เปิดบทเรียนนี้ใน Kodokonคุณใช้โปรแกรมบนบรรทัดคำสั่งอยู่แล้ว เช่น node, npm, git และอื่น ๆ แต่ละตัวรับ อาร์กิวเมนต์ (argument) คำที่พิมพ์ต่อจากชื่อของมัน ซึ่งจะเปลี่ยนพฤติกรรมของมัน มาเขียนโปรแกรมของเราเองกัน Node เปิดเผยอ็อบเจกต์ส่วนกลาง process ที่อธิบายโปรแกรมที่กำลังทำงานอยู่ คุณเคยเจอมันมาแล้วกับ process.version คุณสมบัติ process.argv ของมันคืออาร์เรย์ที่บรรจุ ที่ดัชนี 0 คือพาธไปยัง Node ที่ดัชนี 1 คือพาธไปยังสคริปต์ของคุณ และตั้งแต่ดัชนี 2 เป็นต้นไปคืออาร์กิวเมนต์ที่ผู้ใช้พิมพ์เข้ามาจริง ๆ
console.log(process.argv);
const args = process.argv.slice(2);
console.log("Your arguments:", args);แหล่งข้อมูลที่สอง คือ ตัวแปรสภาพแวดล้อม (environment variable) เหล่านี้คือคู่ชื่อ/ค่า ที่ระบบมอบให้กับโปรแกรมในตอนเริ่มทำงาน มันใช้สำหรับการตั้งค่า เช่น คีย์ API ลับ โหมดดีบัก ที่อยู่ของฐานข้อมูล และอื่น ๆ คุณอ่านมันได้ในอ็อบเจกต์ process.env ตัวแปรที่ไม่มีอยู่จะเป็น undefined จงเตรียมค่าเริ่มต้นไว้เสมอ เช่น ด้วยตัวดำเนินการ ??
const level = process.env.LOG_LEVEL ?? "info";
console.log("Log level:", level);LOG_LEVEL=debug node config.jsเมื่อโปรแกรมทำงานเสร็จ มันจะคืน รหัสออก (exit code) ให้กับระบบ ตัวเลขที่สรุปว่าทุกอย่างเป็นอย่างไร ธรรมเนียมสากลคือ 0 หมายถึง "สำเร็จ" ส่วนค่าอื่นใดบ่งบอกถึงข้อผิดพลาด นี่คือสิ่งที่เครื่องมือและสคริปต์อื่น ๆ ตรวจสอบเพื่อรู้ว่าทุกอย่างทำงานได้หรือไม่ process.exit(1) จะหยุดสคริปต์ทันทีด้วยรหัส 1 นอกจากนี้ให้ใช้ console.error สำหรับข้อความแสดงข้อผิดพลาด มันเขียนไปที่ เอาต์พุตข้อผิดพลาด (stderr) ช่องทางที่แยกจากเอาต์พุตปกติ มารวมทุกอย่างเข้าด้วยกันในสคริปต์ที่สมบูรณ์กัน
const name = process.argv[2];
if (!name) {
console.error("Usage: node greet.js <name>");
process.exit(1);
}
console.log(`Hello, ${name}!`);