ข้ามไปยังเนื้อหา

process & env

process คือ global object ที่ให้โปรแกรมของคุณเข้าถึง Node.js process ที่กำลังทำงาน ใช้งานได้ทุกที่ — ไม่ต้อง import

property และ method ที่ใช้บ่อยที่สุด:

Property / Methodสิ่งที่ให้
process.argvArray ของ command-line arguments
process.envObject ของ environment variables
process.cwd()string ของ current working directory
process.exit(code)ยุติ process ด้วย exit code
process.platformstring ของ OS platform ('linux', 'darwin', 'win32')
process.versionstring ของ Node.js version (เช่น 'v20.11.0')

process.argv คือ array เสมอ สองตัวแรกมีค่าตายตัว:

  • argv[0] — path ไปยัง node binary
  • argv[1] — path ไปยัง script ที่กำลังรัน
  • argv[2] เป็นต้นไป — arguments ที่คุณระบุจริงๆ
Node.js

Needs the Node.js runtime — open in StackBlitz to run.

process.env คือ plain object ที่มี keys และ values เป็น strings ถูก populate จาก shell environment ตอนเริ่ม process

Node.js

Needs the Node.js runtime — open in StackBlitz to run.

Node.js

Needs the Node.js runtime — open in StackBlitz to run.

process.exit(code) ยุติ process ทันที ตามแบบแผน:

  • Exit code 0 หมายถึงสำเร็จ
  • code ที่ไม่ใช่ศูนย์ (มักเป็น 1) หมายถึงล้มเหลว
// Example: exit with error if a required env var is missing
if (!process.env.DATABASE_URL) {
console.error('ERROR: DATABASE_URL is required');
process.exit(1);
}

การเรียก process.exit() คือการหยุดแบบทันที — finally blocks ยังทำงาน แต่ async callbacks ที่ค้างอยู่จะไม่ทำงาน สำหรับการปิดตัวแบบ graceful ควร drain server ก่อน (เช่น server.close()) แล้วปล่อยให้ event loop ออกเอง

process.argv[0] มีค่าอะไรเมื่อรัน `node script.js`?
values ที่เก็บใน process.env มี type อะไร?
exit code ใดที่บ่งบอกตามแบบแผนว่าทำงานสำเร็จ?