Использование EJS . В нем почти все функции, которые вы просите.
Он может быть использован с express.js из коробки и прекрасно работает на клиенте.
В качестве бонуса я бы использовал backbone.js для выполнения MVC на клиенте и сервере.
Конечно, это зависит от node.js. Я чувствую, что с помощью Express, Now & Backbone позволяет вам много стабильного контроля с node.js. Не говоря уже о том, что SSJS просто великолепен, а повторное использование кода - просто фантастика.