diff --git a/docs/uniCloud/schema.md b/docs/uniCloud/schema.md index 3364e5c5c08a33e2fb908a8d398ef09371251b81..797dad05d765cad61f9ad84f2092f38ae30ff163 100644 --- a/docs/uniCloud/schema.md +++ b/docs/uniCloud/schema.md @@ -151,7 +151,7 @@ properties里的字段列表,每个字段都有很多可以设置的属性, "description": "can only be one of the enum values and is required" }, "gpa": { - "bsonType": ["double"], + "bsonType": "double", "description": "must be a double if the field exists" }, "address": { @@ -644,6 +644,8 @@ enum支持3种数据格式: 如下例中,当name字段的内容要入库前,就会触发执行 "checkabc" 这个 `扩展校验函数` 。如果"checkabc"校验没有返回true,则该次数据库操作会失败。 +`validateFunction` 类型为字符串时,云端和客户端同时生效 + ```json { "bsonType": "object", @@ -661,6 +663,34 @@ enum支持3种数据格式: } ``` + +`validateFunction` 类型为对象时,可配置客户端同不生效,云端仍然生效 + +> HBuilder 3.1.0+ 支持 + + ```json + { + "bsonType": "object", + "required": ["name"], + "properties": { + "name": { + "bsonType": "string", + "label": "姓名", + "validateFunction": { + "name": "checkabc", // 扩展校验函数名 + "client": false //如果不配置默认是 true + }, + "errorMessage": { + "required": "{label}不能为空" + } + } + } + } + ``` + +提示:如果配置了 `"client": false` 客户端也可以在生成的代码中改为自己的校验函数,此时客户端的校验仍然生效,客户端对应的校验文件目录为 `js_sdk/validator/collection`, `collection`为表名,非固定值 + + `扩展校验函数`是服务空间级的,一个`扩展校验函数`可以被这个服务空间下的任意表中的任意字段引用。 `扩展校验函数`里的代码是可以联网的。一个常见场景是内容的敏感词过滤,可以将内容提交到三方校验服务里,如果校验通过再入库。 @@ -691,6 +721,7 @@ if (uni) { } ``` + #### 3. fieldRules字段间校验@field-rules 自`HBuilderX 3.1.0`起,支持schema内配置一级节点fieldRules对字段之间的关系进行约束和校验。当然只校验一个字段也可以。