【问题标题】:How to get the objectId of object in beforeSave如何在 beforeSave 中获取对象的 objectId
【发布时间】:2015-09-11 04:29:06
【问题描述】:

客户端提交一个新的reciperecipe 对象包含一个 cuisines 数组,它们类似于此配方所属的类别。

beforeSave() Cloud Code 函数中,我想在具有recipes 和cuisines 的单独表中创建条目。

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

cuisine:

objectId | name | country | spicy | fat |
-----------------------------------------

recipe:

objectId | name | ingredient | author |
---------------------------------------

CuisineRecipe:

objectId | cuisine | recipe |
-----------------------------

当一个新配方出现时,我想获取它的 cuisine 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();
    });
});

【问题讨论】:

    标签: parse-platform parse-cloud-code before-save


    【解决方案1】:

    我不一定了解您的不同类及其关系,但对于 request.object.id,您需要指定类,如 request.object.get("cuisines").id

    【讨论】:

    • 我想获取被保存的Recipe对象的id
    猜你喜欢
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 2016-02-05
    • 2017-01-24
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多