Главные правила ноды (из личного опыта, примерно ~ 2 года работы с нодой):
1) Не бросай исключений в асинхронных операциях, а передавай их как параметр callback;
2) Используй паттерны / фреймворки для работы с асинхронностью. Выбор фреймворка и паттерна зависит от предпочтений, я использую
Async.
3) Нельзя по долгу занимать поток в серверном приложении, т.е. если нужно что-то большое посчитать, то либо используй setImmediate и дроби задачу, либо выноси задачу из Ноды на более предпочтительный инструмент (имхо, более правильное решение).
Всё остальное уже не так важно, т.е. пиши как нравиться.