我正在尝试使用Parse中的afterSave
钩子。
但是,即使从刚刚保存的对象中删除ID的简单打印也不会显示在日志中,并且if
语句不会传递以允许执行其他方法。相关代码:
Parse.Cloud.afterSave(Parse.User, function(request) {
Parse.Cloud.useMasterKey();
var user = request.object;
console.log('After save for user ID: ', user.id);
if (!user.existed() && user.get('isTrainer')) {
// does not enter here
打印出来的日志没有ID,只有我输入的字符串。我也尝试打印出请求对象,但是Parse日志系统似乎无法打印出不幸的对象。它也不会输入if
语句,因为使用get
也不会返回任何信息。
任何人都知道为什么会这样?
为了完整性,这里是对象,因此您可以看到它被正确保存:
v31 after_save triggered for _User for user PlVMz2zCfC:
Input: {"object":{"createdAt":"2015-12-24T21:01:01.678Z","email":"yui@bb.bb","firstName":"Pppp","isTrainer":true,"lastName":"Pop","objectId":"PlVMz2zCfC","phone":"(555) 555-5555","trainer":{"__type":"Relation","className":"Trainer"},"updatedAt":"2015-12-24T21:01:01.678Z","username":"yui@bb.bb"}}
Result: Success
答案 0 :(得分:0)
由于这是User类的afterSave触发器,因此您应该使用request.object
代替Parse.Cloud.afterSave(Parse.User, function(request) {
Parse.Cloud.useMasterKey();
var user = request.user;
console.log("user = " + JSON.stringify(user));
console.log("user.id = " + JSON.stringify(user.id));
console.log("user.existed() = " + JSON.stringify(user.existed()));
console.log("user.get("isTrainer") = " + JSON.stringify(user.get("isTrainer")));
if (!user.existed() && user.get("isTrainer")) {
...
我发现在开发过程中将所有内容输出到控制台以帮助调试很有帮助。
var selectedItem = nonSelectedItems.splice(selectedItemIndex, 1);
selectedItems.push(selectedItem);
var allRows = selectedRows.concat(nonSelectedRows);
myTable.updateRowSort(allRows);