校验器
快速开始
BaaS.useVersion('v3.4')
exports.main = async function (event) {
const handlers = {
/**
* handler 会在对应的操作事件中被触发,请在下方对应的事件 handler 如 onCreate 中添加判定逻辑并修改返回值。
*
* <<输入>>:
* | 属性 | 类型 | 说明 |
* | :---------- | :----- | :-------------------------------------------------------------------------------------------- |
* | event | String | 触发事件类型,包括:`create`、`update`、`delete`、`bulk_create`、`bulk_update`、`bulk_delete` |
* | schema_id | String | 校验器关联的数据表 ID |
* | schema_name | String | 校验器关联的数据表名称 |
* | user_id | String | 触发事件的用户 ID |
* | payload | Object | 用户传入数据,`delete`/`bulk_delete` 事件中不包含该参数 |
* | before | Object | 原始数据,`create`/`bulk_create`/`bulk_update`/`bulk_delete` 事件中不包含该参数 |
* | filter | Object | 用户筛选条件,仅 `bulk_update`/`bulk_delete` 包含该参数 |
*
* <<输出>>:
* 返回 true 为 “验证通过”
* 返回 false 为 “验证不通过(未提供理由)”
* 抛出 Error 为 “验证不通过(Error.message 为理由)”
*
* <<举例>>:
* return data.user_id == 1001 // 只允许 ID 为 1001 的用户进行操作
* 或者:
* if (data.user_id == 1001) {
* return true
* } else {
* throw Error(`用户 ${data.user_id} 无操作权限`)
* }
*/
async onCreate(data) {
// “创建”操作时触发,
return true
},
async onUpdate(data) {
// “更新”操作时触发
return true
},
async onDelete(data) {
// “删除”操作时触发
return true
},
async onBulkCreate(data) {
// “批量创建”操作时触发
return true
},
async onBulkUpdate(data) {
// “批量更新”操作时触发
return true
},
async onBulkDelete(data) {
// “批量删除”操作时触发
return true
},
}
const validator = new BaaS.Validator(handlers)
return validator.validate(event)
}Validator
属性
类型
必填
说明
高阶使用
event.data说明
event.data说明属性
类型
说明
属性
说明
返回说明
返回
说明
拒绝所有操作/允许所有操作
对数据表操作方法进行校验
对操作者进行校验
对用户传入数据进行校验
注意事项
Last updated
Was this helpful?