用索引做的值唯一性校验提示不友好,且会泄露表名,所以想通过扩展校验函数validateFunction来做入库前校验,可是发现无论是本地还是云端都不执行校验,console.log也不会输出,好像根本就没有运行函数,有人知道是什么原因吗?
// 异步校验 await/async
module.exports = async function (rule, value, data) {
console.log('check到了');
return '菜单名称已经存在!'
let db = uniCloud.database();
let res = db.collection('column-list').where({name:value}).get();
console.log(res.count);
console.log(res['code']);
if (res.count == 0) {
// 校验通过
return true
} else {
// 校验失败
return '菜单名称已经存在!'
}
}
schema2code代码
"name": {
"bsonType": "string",
"description": "菜单名称",
"trim": "both",
"maxLength":4,
"label":"菜单名称",
"validateFunction": {
"name": "check_column_name" // 扩展校验函数名
"client": false //如果不配置默认是 true
},
"errorMessage": {
"required": "请输入菜单名称",
"maxLength": "菜单名称不能超过4个字符"
}
},
0 个回复