【发布时间】:2019-04-12 16:00:29
【问题描述】:
想象一下我有一个像这样的数据模型:
// Pseudo-code, as I don't know how to achieve this
const Model = {
name: String.required,
description: String.optional,
rank: Number.required,
// ...
}
基本上,这意味着对象必须具有属性name,并且它必须是String。属性description 是可选,但如果已定义,则必须是String。等等。
现在,假设我有一堆对象:
const obj1 = {
name: 'Object 1',
rank: 1,
}
const obj2 = {
description: 'This is object 2',
rank: 2,
}
为了将我的对象保存在 NoSQL 数据库(Firebase 的 Firestore)中,我想确保每个 Object 匹配 Model。例如,这将防止缺少字段。
在我的示例中,obj1 应该通过,但 obj2 不应该具有属性 name 丢失。
有没有办法在错误消息中抛出缺少哪些属性?
【问题讨论】:
-
当然,例如 MongoDB 本身就支持这一点。快速搜索“JS 验证”会返回一些很好的库,这些库完全符合您的要求。
-
模型是如何构建的?从表格?您应该在键值进入模型之前进行验证。
标签: javascript data-structures