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 เมื่อมีปัญหาได้ตามที่เราตั้งค่าไว้