我在本地环境写好、调试好了云函数,然后放到在线云函数中创建的afterUpdate中运行,却报错,不知道是哪里出了问题
hook在线云函数代码:
if(request.object.updatedKeys.indexOf('winner') != -1){
var supports=null;
var nonsupports=null;
var winner = request.object.attributes.winner;
var item=request.object;
var supportQuery = new AV.Query('UserJudgeItem');
supportQuery.equalTo('item',item);
// var supportQuery = new AV.Query('UserJudgeItem');
supportQuery.equalTo('operateType','support');
supportQuery.include('user');
var nonsupportQuery = new AV.Query('UserJudgeItem');
nonsupportQuery.equalTo('item',item);
nonsupportQuery.equalTo('operateType','nonsupport');
nonsupportQuery.include('user');
supportQuery.find().then(function(supRes){
if(supRes.length>0){
var supporterArray=[];
for(var i=0;i<supRes.length;i++){
supporterArray.push(supRes[i].attributes.user);
}
supports = supporterArray;
}
nonsupportQuery.find().then(function(nonsupRes){
if(nonsupRes.length>0){
var nonsupporterArray=[];
for(var i=0;i<nonsupRes.length;i++){
nonsupporterArray.push(nonsupRes[i].attributes.user);
}
nonsupports = nonsupporterArray;
}
if(supports.length>0 && nonsupports.length>0){
var jugersNum = supports.length + nonsupports.length;
var supporterScore = (supports.length/jugersNum).toFixed(2);
var nonsupporterScore = (nonsupports.length/jugersNum).toFixed(2);
if(winner == 'supporter'){
// 给支持者加分
AV.Object.fetchAll(supports).then(function (voters) {
// 成功
voters.forEach(function(voter){
voter.increment('score',supporterScore);
});
console.log("7");
AV.Object.saveAll(voters).then(function(res){
// support更新成功
console.log("support更新成功");
},function(error){
console.log(error);
});
}, function (error) {
// 异常处理
console.log(error);
});
// 给反对者减分
AV.Object.fetchAll(nonsupports).then(function (voters) {
// 成功
voters.forEach(function(voter){
voter.increment('score',-nonsupporterScore);
});
AV.Object.saveAll(voters).then(function(res){
// nonsupport更新成功
console.log("nonsupport更新成功");
},function(error){
console.log(error);
});
}, function (error) {
// 异常处理
console.log(error);
});
}else if(winner == 'nonsupporter'){
// 给支持者减分
AV.Object.fetchAll(supports).then(function (voters) {
// 成功
voters.forEach(function(voter){
voter.increment('score',-supporterScore);
});
AV.Object.saveAll(voters).then(function(res){
// support更新成功
console.log("support更新成功");
},function(error){
console.log(error);
});
}, function (error) {
// 异常处理
console.log(error);
});
// 给反对者加分
AV.Object.fetchAll(nonsupports).then(function (voters) {
// 成功
voters.forEach(function(voter){
voter.increment('score',nonsupporterScore);
});
AV.Object.saveAll(voters).then(function(res){
// nonsupport更新成功
console.log("nonsupport更新成功");
},function(error){
console.log(error);
});
}, function (error) {
// 异常处理
console.log(error);
});
}
}
});
});
}