Лучшие практики для создания базовых моделей в NodeJS
Я работаю над проектом NodeJS API. У меня есть много моделей (пользователи, проекты, команды, ...) и для каждой из этих моделей у меня есть:
- Методы моделей (геттеры и сеттеры)
- Запросы к БД (я использую Couchdb)
- Проверка схемы
Мой первый вопрос:
Должен ли я создать несколько модулей для запроса БД и методов класса (чтобы отделить уровень домена от уровня персистентности)?
Мой второй вопрос:
"Как мне управлять созданием модели?"
Несколько случаев:
случай 1 (конструктор init с идентификатором):
var user = new User({id: 1});
user.fetch(function(err, user) {
user.get('name'); // George
});
случай 2 (без метода конструктора):
user.fetchById({id: 1}, function(err, user) {
user.get('name'); // George
}
case3 (Различает модули БД и доменный уровень):
userDB.fetchById({id: 1}, function(err, data) {
var user = new User(data);
user.get('name'); // George
}
Или, может быть, есть другие лучшие практики? Примечание: я часто вижу людей, создающих модули, которые представляют модели и которые выставляют только запросы БД.
С наилучшими пожеланиями.