Проверка приведения к номеру не удалась - PullRequest
1 голос
/ 22 марта 2019

Я получаю ошибку проверки на пути badgeid, почему я получаю это, когда получаю его, когда badgeid - это число, а что я сохраняю - это число? `

Проверяет, что я уже проверил:

achievement значение 5,

achievement тип - Число

ошибка:

(node:8260) UnhandledPromiseRejectionWarning: ValidationError: achievement_users validation failed: badgeid: Cast to Number failed for value "{ badgeid: 0,
  progress: 0,
  _id: 5c94c04a758c8a204440499e }" at path "badgeid"

код сохранения:

  var achievement = new achivementUsers();
            achievement.badgeid = achievement;
            return achievement.save().then(function (response) {

схема:

{
    badgeid: {type: Number, default: 0},
    progress: {type: Number, default: 0},
    completed: {type: Boolean, default: false},
    userid: {type: String, default: 'No name'},

}

1 Ответ

1 голос
/ 22 марта 2019

Вы переопределяете переменную achievement. Вы устанавливаете achievement с новой моделью, поэтому вам нужно использовать другое имя:

  //somewhere in the code `achievement` is 5
  var achievementUser = new achivementUsers();
  achievementUser.badgeid = achievement;
  return achievementUser.save().then(function (response) {});

Или вы можете инициализировать значение при создании объекта модели. Но все равно рекомендуется использовать разные имена переменных для разных контекстов.

 //somewhere in the code `achievement` is 5
  var achievement = new achivementUsers({
    badgeid: achievement
  });
  return achievement.save().then(function (response) {});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...