Dark mode
Process Module
เหตุผลที่ควรเรียนรู้ process
process
เป็นหัวใจของโปรแกรม Node.js ทุกตัว เพราะช่วยให้โปรแกรมรู้ว่า "กำลังรันอยู่ที่ไหน รับ argument อะไรมา มี environment อะไรบ้าง" ถ้าอยากให้ CLI ของคุณยืดหยุ่น (เช่น รับ option, ตรวจสอบ env, ออกโปรแกรมเมื่อเกิด error) ต้องเข้าใจ process
- ทุก CLI tool ที่มี option (--help, --version) จะใช้ process.argv
- ถ้าต้องการให้โปรแกรมรู้สภาพแวดล้อม (production/development) จะใช้ process.env
- ใช้ process.exit เพื่อจบโปรแกรมอย่างถูกต้อง
แนะนำ Process module
process
เป็น object พิเศษที่มีอยู่ในทุกไฟล์ Node.js ใช้จัดการข้อมูลเกี่ยวกับ process ปัจจุบัน เช่น arguments, env, exit code, สัญญาณ (signal) ฯลฯ
การอ่าน argument และ environment
process.argv
รับ argument ที่ส่งเข้ามาตอนรัน CLI
js
console.log(process.argv);
// node script.js foo bar
// ผลลัพธ์: [ 'node', 'script.js', 'foo', 'bar' ]
process.env
อ่าน/เขียน environment variables
js
console.log(process.env.PATH);
process.env.MY_VAR = "hello";
การจบโปรแกรมและ exit code
process.exit([code])
จบโปรแกรมด้วย exit code
js
if (!process.env.USER) process.exit(1);
การจัดการ signal (SIGINT, SIGTERM)
js
process.on("SIGINT", () => {
console.log("หยุดโปรแกรมด้วย Ctrl+C");
process.exit();
});
เคล็ดลับและกรณีใช้งานจริง
- อ่าน argument เพื่อ config CLI
- ตรวจสอบ/ตั้งค่า environment ขณะ deploy
- ออกโปรแกรมเมื่อเกิด error หรือรับสัญญาณจาก OS
ตัวอย่าง: CLI ที่รับ argument และใช้ env
js
if (process.argv.includes("--help")) {
console.log("แสดงวิธีใช้...");
process.exit(0);
}
console.log("ENV:", process.env.NODE_ENV);