Задать вопрос
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');
}

Хотел узнать — правильно ли это? Или есть более удобный и логичный способ?
  • Вопрос задан
  • 3704 просмотра
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Skillbox
    Node.js
    2 месяца
    Далее
  • Javascript.ru
    Курс по Node.js
    5 недель
    Далее
Решения вопроса 1
@kxyu
Есть много других вариантов, но этот неплох. Для читаемости можно записать так:

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

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

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