我们想为每一个添加的Task类的数据增加ACL,于是增加了这样的beforeSave的Hook
AV.Cloud.beforeSave('Task', function (request) {
if (request.currentUser) {
var task = request.object
var acl = new AV.ACL()
acl.setRoleWriteAccess('admin', true)
acl.setRoleReadAccess('admin', true)
task.setACL(acl)
return Promise.resolve()
} else {
return Promise.reject('Permission deny')
}
})
这时再创建Task
var Task = AV.Object.extend('Task');
var task = new Task({
"title": "yooy",
});
var testDate = new Date('2016-06-04');
task.set('bidding_started_at', testDate)
task.save()
.then(function (task) {
console.log(task)
}, function (err) {
console.log(err)
})
就会遇到报错
POST https://k6vrj3ba.api.lncld.net/1.1/classes/Task 400 (Bad Request)
Error: Invalid value type for field 'bidding_started_at',expect type is {:type "Date"},but it is '{:type "String"}'.
删掉
var testDate = new Date('2016-06-04');
task.set('bidding_started_at', testDate)
再执行就没问题,测试了其他名字的域,只要是Date类型的都有这个问题
再回来修改云函数,去掉 return Promise.resolve(),结果同上。
如果把return Promise.resolve() 换成 response.success()就好了
-
创建时间
17年8月24日
-
最后回复
17年8月28日
-
8
回复
-
3.5K
浏览
-
3
用户
-
2
链接