mannaro
@mannaro
Умею профессионально гуглить

Проверка на существование модели в mongoose

Здравствуйте! Есть у меня функция
function getModel (db) {
  return db.model('Test', Test, 'test');
}

И при использовании ее в коде > 1 раза node.js падает с сообщением об ошибке:
Cannot overwrite `Test` model once compiled.

Единственный выход, который я нашел, это делать проверку на существование модели
function getModel (db) {
  var name = 'Test';
  if (db.model(name)) return db.model(name);
  else return db.model(name, Test, 'test');
}

Хотел узнать — правильно ли это? Или есть более удобный и логичный способ?
  • Вопрос задан
  • 3700 просмотров
Решения вопроса 1
@kxyu
Есть много других вариантов, но этот неплох. Для читаемости можно записать так:

function getModel (db) {
    var name = 'Test';
    return db.model(name) || db.model(name, Test, 'test');
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы