验证转换为数字失败
Posted
技术标签:
【中文标题】验证转换为数字失败【英文标题】:validation Cast to Number failed 【发布时间】:2019-08-13 08:45:32 【问题描述】:我在路径 badidid 处收到验证错误,为什么当我在 badidid 是一个数字时得到它时会得到这个,而我保存的是一个数字?`
检查我已经检查过:
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',
【问题讨论】:
你正在制作一个圆形对象,成就.badgeid =成就;这肯定不会匹配架构 【参考方案1】:您正在覆盖变量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) );
【讨论】:
以上是关于验证转换为数字失败的主要内容,如果未能解决你的问题,请参考以下文章
mongoose .create 给 node.js “ValidationError:验证失败:转换为 [undefined] 值失败......”
验证失败:video_data.0._id:在路径 \"_ 处的值 \"\"(类型字符串)转换为 ObjectId 失败