How does the approach you've taken compare with the architecture outlined in nodejitsu's concept of isomorphic JS?
http://blog.nodejitsu.com/scaling-isomorphic-javascript-code