这个错误非常古怪。它并不总是失败,但是当它发生时它看起来像这样。
我有一些代码可以改变"代码" (一个字符串)子文档数组中的元素。它遍历每个目标,检查是否有要应用的更改,如果是,则应用它。
for (i = 0; i < user.goals.length; i++) {
if (transformsMap[user.goals[i].code]) {
user.goals[i].code = transformsMap[user.goals[i].code]
}
}
user.goals.sort(function (a,b) {return a.code.charCodeAt(0) - b.code.charCodeAt(0))
当我保存它时,有时会出现这样的错误:
'goals.3.code':
{ [ValidatorError: Path `code` is required.]
...但在这种情况下3
是目标数组的长度。即没有目标.3子文档。我在验证之前尝试记录user.goals
和user.goals.length
,他们都同意数组中只有3个元素。
我完全不知所措。
答案 0 :(得分:0)
如何添加更多支票?如果if子句失败,还要设置默认值吗?
for (i = 0; i < user.goals.length; i++) {
if (user.goals[i] && user.goals[i].code && transformsMap[user.goals[i].code]){
user.goals[i].code = transformsMap[user.goals[i].code]
} else {
user.goals[i].code = "" // Whatever this is <-- default value.
}
}
user.goals.sort(function (a,b) {return a.code.charCodeAt(0) - b.code.charCodeAt(0))