Parse platform 如何在beforeSave中获取object的objectId

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,但仍然不起作用,即没有任何内

客户提交一个新的配方。recipe对象包括一组菜系,这些菜系类似于此菜系所属的类别

在beforeSave Cloud Code函数中,我想在一个单独的表中创建包含菜谱和菜系的条目

换句话说,这些是我的表格:

烹饪:

配方:

菜谱:

当一个新菜谱出现时,我想获取它的烹饪ID并在CuisineRecipe表中创建条目

但是,在我的代码中,request.object.id返回undefined

我猜这可能是因为在保存之前它没有ID。但是,我尝试更改为afterSave,但仍然不起作用,即没有任何内容保存到DB

以下是我的云代码:

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();
    });
});