ปกติแล้วการรันในเซิร์ฟเวอร์หรือในเครื่องทั่วไปก็ไม่มีปัญหามากนัก เพียงแค่รีโมทเข้าไปปิด-เปิดใหม่ก็ใช้ได้แล้ว เพราะไม่ค่อยได้อัพเดทกันบ่อยๆ
แต่สำหรับคนที่ทำระบบโดยไม่เข้าถึง Shell โดยตรงแล้วจะยากสำหรับการเข้าไปปิด-เปิด หรือ รีสตาร์ทเซอร์วิส แต่อย่างไรก็ตามใช่ว่าจะไร้หนทางเสียทีเดียวเมื่อมีคนเขียนโปรแกรมไว้รองรับเรียกว่า nodemon การติดตั้งก็ง่ายแสนง่ายรันผ่าน npm ได้เลย
npm install -g nodemon
และการใช้งานก็เรียกแทน node.js ได้เลย
nodemon <app.js>
คุณสมบัติของ nodemon
- รีสตาร์ทโปรแกรมแบบอัตโนมัติเมื่อเปลี่ยนแปลงซอร์สโค้ด
- ตรวจสอบไฟล์นามสกุลที่มอนิเตอร์อัตโนมัติ
- สนับสนุน node และ coffeescript
- เฝ้าดูไดเรคทอรี่ที่ระบุ
- เป็น Opensorce ดาวน์โหลดฟรีที่ github
การแก้ไขปัญหา
สำหรับคนที่ใช้ ubuntu เมื่อรัน node แล้วจะไม่พบไฟล์ ระบบจะแนะนำให้ติดตั้งโปรแกรมอื่นๆ ที่คาดว่าจะมีโปรแกรม node แต่ถ้ารัน nodejs จะสามารถใช้งานได้เช่นกัน ซึ่งบางคนติดรูปแบบการเรียน node มากกว่า มีวิธีแก้ไขโดยสร้างลิงค์ไฟล์ใหม่ คือเพียงแค่นี้ก็จะเรียกใช้คำสั่ง node ได้แล้วsudo ln -s /usr/bin/nodejs /usr/local/bin/node
เมื่อมีการแก้ไขที่หน้าจอ Console (ถ้ายังไม่ยกเลิกออกไปเสียก่อน) จะมีข้อความ
7 Aug 00:34:10 - [nodemon] restarting due to changes...และเมื่อดูจากโพรเซสจะเห็นตัวเลขเปลี่ยนไป
7 Aug 00:34:10 - [nodemon] starting `node ticket.js`
server start app onready
14890 pts/0 00:00:00 node
15075 pts/0 00:00:00 noderoot@tms:# nano ticket.js
root@tms:# ps -A | grep node
14890 pts/0 00:00:00 node
15183 pts/0 00:00:00 node
root@tms:# nano ticket.js
root@tms:# ps -A | grep node
14890 pts/0 00:00:00 node
15227 pts/0 00:00:00 node
root@tms:# nano ticket.js
root@tms:# ps -A | grep node
14890 pts/0 00:00:00 node
15283 pts/0 00:00:00 node
เท่าที่ทดสอบแล้ว nodemon ถือว่าเป็นโปรแกรมที่ช่วยอำนวยความสะดวกให้กับนักพัฒนาสาย JavaScripts ได้เป็นอย่างดี ไม่ต้องรีโมทบ่อยครั้ง เพียงแค่อัพโหลดไฟล์ผ่าน ftp ไปยังเซิร์ฟเวอร์ที่เหลือเป็นหน้าที่ของ nodemon รับช่วงต่อไป แต่อย่างไรก็ตาม หากอัพโหลดแล้วหากระบบไม่ทำงาน ให้ลองตรวจสอบคำสั่งอีกครั้งหนึ่ง บางครั้งคำสั่งที่แก้ไขนั่นแหละไม่ทำงาน เช่น ใช้คำสั่ง alert ในฝั่งเซิร์ฟเวอร์ซึ่งไม่สามารถใช้งานได้ เพราะฟังค์ชัน alert ไม่มีในสภาพแวดล้อมของ node.js แต่สามารถสั่งรันในฝั่ง client ได้
ปกติหากแก้ไขครั้งหนึ่งสั่งรัน node daemon กันครั้งหนึ่งก็ไม่มีปัญหาเพราะหากมีความผิดพลาดอะไรก็จะแสดงออกมาให้เห็นทันที แต่กรณีใช้ nodemon เราก็มองไม่เห็นเพราะอยู่บนฝั่งเซิร์ฟเวอร์ ดังนั้นควรที่จะตรวจสอบและระมัดระวังสักนิด...
No comments:
Post a Comment