Skip to content

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);

อ้างอิง