Many people use forever https://github.com/nodejitsu/forever , which has become pretty much industry standard.
If you are on Ubuntu, you can also use init scripts ( google 'ubuntu upstart' ), that will do much the same thing, and are guaranteed to if the server ever gets restarted.
Here is my upstart script for example https://gist.github.com/qbert65536/5271721 .
It gets run when the server starts, you also control them with
start myapp, stop myapp, restart myapp , where myapp.conf is the name of the upstart script.
#!upstart
description "MyApp"
author "MyApp by charlie"
env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
respawn
start on runlevel [23]
stop on shutdown
script
export DISPLAY=:1
export NODE_ENV=production
exec authbind node /opt/deploy/myapp/app.js >> /var/log/myapp.log
end script