Thursday, August 27, 2026

วิธี deploy Node.js application โดยไม่ต้องรันคำสั่งผ่านทาง cmd

มีหลายวิธีในการรัน Node.js Application ให้ทำงานตลอดเวลาโดยไม่ต้องเปิดหน้าต่าง CMD หรือ Terminal ค้างไว้ครับ ซึ่งเป็นมาตรฐานที่ใช้ทั้งบนเครื่องส่วนตัว (Local) และการ Deploy บน Production Server 

1. ใช้ Process Manager (แนะนำมากที่สุด) วิธีนี้เหมาะทั้งสำหรับการรันบน Server (เช่น VPS/Linux/Windows Server) และการรัน background ในเครื่องตัวเอง โดยนิยมใช้ PM2 มากที่สุด ข้อดี: หากแอปเด้งดับ (Crash) หรือ Server Reboot เครื่องใหม่ ตัว PM2 จะทำการ Restart แอปให้กลับมาทำงานใหม่อัตโนมัติ 
 1ติดตั้ง PM2 แบบ Global:รันใน CMD เพียงครั้งเดียวBashnpm install -g pm2 
2สั่งสั่งรันแอปใน Background:Bashpm2 start index.js --name "phonebook-api" เมื่อสั่งคำสั่งนี้แล้ว สามารถปิดหน้าต่าง CMD ได้ทันที แอปก็ยังทำงานอยู่
3คำสั่งจัดการเบื้องต้นที่ควรรู้:
ดูสถานะแอปทั้งหมด: pm2 list
ดู Logs/Errors: pm2 logs
สั่งหยุด/รันใหม่: pm2 stop phonebook-api หรือ pm2 restart phonebook-api
ตั้งค่าให้รันอัตโนมัติตอนเปิดเครื่อง Server: pm2 startup และ pm2 save 

 2. Deploy ขึ้นบริการ PaaS / Cloud Services (ไม่ต้องรัน CMD เอง) หากต้องการนำขึ้นระบบอินเทอร์เน็ตจริง แนะนำให้ใช้บริการ Cloud Platform ที่เชื่อมต่อกับ GitHub เมื่อคุณ git push โค้ดขึ้นไป ระบบ Cloud จะทำการ Build และรัน Node.js ให้โดยอัตโนมัติ Render / Railway / Fly.io: มี Free tier หรือราคาประหยัด แค่ผูก GitHub Repository เข้ากับระบบ และตั้งค่า Start Command (เช่น node index.js) ระบบจะจัดการรันให้อยู่เบื้องหลังตลอด 24/7 Vercel / Netlify: เหมาะกับโปรเจกต์ที่มีหน้าเว็บ Frontend หรือใช้ Framework อย่าง Next.js / Express (Serverless Functions) 

 3. รันเป็น Windows Service (สำหรับ Windows Server) หากเซิร์ฟเวอร์ของคุณเป็น Windows Server และต้องการให้แอป Node.js ทำงานเป็น Background Service ของระบบ (ทำงานทันทีที่เปิดเครื่อง โดยไม่ต้องกด Login เข้าหน้า Desktop) ใช้ไลบรารี node-windows: เขียน Script สั้นๆ เพื่อลงทะเบียนไฟล์ Node.js ของเราให้กลายเป็น Windows Service JavaScript // install-service.js const Service = require('node-windows').Service; const svc = new Service({ name: 'My Phonebook App', description: 'Node.js Phonebook Service', script: 'C:\\path\\to\\your\\index.js' }); svc.on('install', () => { svc.start(); }); svc.install(); (รันไฟล์นี้ด้วย node install-service.js แค่ครั้งเดียว ตัวแอปจะไปอยู่ในหน้า services.msc ของ Windows ทันที) 

 4. ใช้ Docker Container หากองค์กรของคุณใช้ระบบ Containerization สามารถเขียน Dockerfile เพื่อบรรจุ Node.js และโค้ดทั้งหมดไว้ด้วยกัน จากนั้นรัน Container แบบ Background (-d หรือ Detached mode): Bash docker run -d -p 3000:3000 --name my-node-app my-node-image ระบบ Docker จะดูแลการรันให้อยู่เบื้องหลัง และสั่ง Restart เมื่อมีปัญหาได้ตามที่เราตั้งค่าไว้

No comments:

Post a Comment