Parse platform 如何在beforeSave中获取object的objectId
客户提交一个新的配方。recipe对象包括一组菜系,这些菜系类似于此菜系所属的类别 在beforeSave Cloud Code函数中,我想在一个单独的表中创建包含菜谱和菜系的条目 换句话说,这些是我的表格: 烹饪: 配方: 菜谱: 当一个新菜谱出现时,我想获取它的烹饪ID并在CuisineRecipe表中创建条目 但是,在我的代码中,request.object.id返回undefined 我猜这可能是因为在保存之前它没有ID。但是,我尝试更改为afterSave,但仍然不起作用,即没有任何内容保存到DB 以下是我的云代码:Parse platform 如何在beforeSave中获取object的objectId,parse-platform,parse-cloud-code,before-save,Parse Platform,Parse Cloud Code,Before Save,客户提交一个新的配方。recipe对象包括一组菜系,这些菜系类似于此菜系所属的类别 在beforeSave Cloud Code函数中,我想在一个单独的表中创建包含菜谱和菜系的条目 换句话说,这些是我的表格: 烹饪: 配方: 菜谱: 当一个新菜谱出现时,我想获取它的烹饪ID并在CuisineRecipe表中创建条目 但是,在我的代码中,request.object.id返回undefined 我猜这可能是因为在保存之前它没有ID。但是,我尝试更改为afterSave,但仍然不起作用,即没有任何内
var _ = require('underscore');
Parse.Cloud.beforeSave("Recipe", function(request, response) {
// CREATE CuisineRecipe ENTRIES
//getCuisines
var cuisines = request.object.get("cuisines");
// FOR EACH cuisines
var promise = Parse.Promise.as();
_.each(cuisines, function(CuisineObj){
console.log(CuisineObj.text);
// Verify that Cuisine exists
var CuisineQuery = new Parse.Query("CuisinePublic");
CuisineQuery.equalTo("CuisineId", CuisineObj.text);
promise = promise.then(function(){
return CuisineQuery.find({
success: function(results){
console.log("results: " + results);
// If results is 1, it exists, everything is good. Proceed to adding CuisineRecipe entry
if (results.length == 1){
var CuisineRecipe = Parse.Object.extend("CuisineRecipe");
var CuisineRecipe = new CuisineRecipe();
CuisineRecipe.set("CuisineId", CuisineObj.text);
CuisineRecipe.set("Cuisine", results[0].id);
CuisineRecipe.set("Recipe", request.object.id);
CuisineRecipe.save();
}
},
error: function(results){
console.log("Error");
console.log("results: " + results);
}
});
});
return promise;
});
promise.then(function(){
response.success();
});
});
我不一定了解您的不同类及其关系,但对于request.object.id,您需要指定类似request.object.getcuisines.id的类,我想获取正在保存的菜谱对象的id
objectId | name | ingredient | author |
---------------------------------------
objectId | cuisine | recipe |
-----------------------------
var _ = require('underscore');
Parse.Cloud.beforeSave("Recipe", function(request, response) {
// CREATE CuisineRecipe ENTRIES
//getCuisines
var cuisines = request.object.get("cuisines");
// FOR EACH cuisines
var promise = Parse.Promise.as();
_.each(cuisines, function(CuisineObj){
console.log(CuisineObj.text);
// Verify that Cuisine exists
var CuisineQuery = new Parse.Query("CuisinePublic");
CuisineQuery.equalTo("CuisineId", CuisineObj.text);
promise = promise.then(function(){
return CuisineQuery.find({
success: function(results){
console.log("results: " + results);
// If results is 1, it exists, everything is good. Proceed to adding CuisineRecipe entry
if (results.length == 1){
var CuisineRecipe = Parse.Object.extend("CuisineRecipe");
var CuisineRecipe = new CuisineRecipe();
CuisineRecipe.set("CuisineId", CuisineObj.text);
CuisineRecipe.set("Cuisine", results[0].id);
CuisineRecipe.set("Recipe", request.object.id);
CuisineRecipe.save();
}
},
error: function(results){
console.log("Error");
console.log("results: " + results);
}
});
});
return promise;
});
promise.then(function(){
response.success();
});
});