Разделение моделей, логики и DAO в express/node.js

Какой лучший способ разделить разные уровни экспресс-приложения, так что мой файл app.js не будет заполнен функциями? Я прихожу из Java-мира, поэтому я обычно использую свои модели, бизнес-логику и код DAO в разных уровнях.

Другой вопрос, который меня беспокоил: как мне открыть соединение с БД в app.js, а затем поделиться этим с различными частями кода, которым нужен доступ к нему? Не маршрутизированные функции, а модули бизнес-логики.

Ответ 1

Смотрите этот проект как отдельные файлы следующим образом:

https://github.com/lethus/popbroker

routes.js - Здесь мы помещаем маршруты, обычно ссылающиеся на контроллеры

models.js - Модель здесь вы ставите функции MongoDB

forms.js - Вы выполняете проверку объектов

controllers/users.js - это будет что-то вроде java UI, здесь мы будем называть models.js и вставляем, обновляем, списываем, находят