我在路径 badgeid 处收到验证错误,当 badgeid 是一个数字时我得到它,为什么我得到这个,而我保存的是一个数字?`
检查我已经检查过:
achievement
值为5,
成就
类型为Number
错误:
(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'},
}
最佳答案
您正在覆盖变量 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) {});
关于javascript - 验证转换为数字失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55298338/