需要猫鼬模型,默认情况下

Nao*_*aor 7 javascript mongoose mongodb node.js mongoose-schema

我使用名为“phoneNumber”的字段创建了猫鼬模型:

...
phoneNumber: {
    type: 'String',
    required: true,
    default: ''
},
...
Run Code Online (Sandbox Code Playgroud)

每当我创建该模型的新记录时,都会收到验证失败异常:

 Path `phoneNumber` is required
Run Code Online (Sandbox Code Playgroud)

即使我设置了默认值,也会发生这种情况。什么是不正确的?

Far*_*hir 5

您将默认值设置为空字符串,而在 JavaScript 中,空字符串是一个falsy值。因此所需的检查失败,您会收到该验证消息。

阅读有关 Falsy 值的更多信息:https : //developer.mozilla.org/en-US/docs/Glossary/Falsy

  • @Farhan 这对 Mongoose 来说是蹩脚的。IMO 他们应该检查“null”/“undefined”,仅此而已。 (6认同)
  • 来自[文档](https://mongoosejs.com/docs/defaults.html)的@adirabargil:**注意**:如果路径的值严格为“未定义”,Mongoose 仅​​应用默认值。 (2认同)