在PersistedModal中的findOrCreate

时间:2015-05-19 00:00:24

标签: loopbackjs strongloop

我正在使用环回。我希望创建记录,如果它不存在。我使用Modal.findOrCreate方法来保持唯一性,但它显示我的findOrCreate错误不是一个函数,但Docs显示它是。我试过的是。

Poet.findOrCreate({where: {name: query.name}}, {name:query.name},function(response){
         console.log(response);
        });

我正在编写问题,写完了我写的内容。

    $scope.poetAdded = function(query) {
        if (!angular.isUndefinedOrNull(query.id)) {
            //          console.log("itemId : " + $scope.items[$scope.editIndex].id);
            if (!angular.isUndefinedOrNull($scope.form.id)) {
                Song.updateAll({
                        where: {
                            id: $scope.form.id
                        }
                    }, {
                        poetId: query.id
                    })
                    .$promise.then(function(value) {
                        $scope.form.poetId = query.id;
                        $scope.items[$scope.editIndex].poetId = query.id;
                    }, function(reason) {
                        console.log("error :" + JSON.stringify(reason.data.error.details.messages));
                        console.log(reason.data.error.details.messages);
                    });
            } else {
                $scope.form.poetId = query.id;
            }
        } else {
            console.log("find & Create function to be used !!");
            Poet.findOrCreate({
                where: {
                    name: query.name
                }
            }, {
                name: query.name
            }, function(err, instance) {
                if (err) console.log(err);
                console.log(instance); //instance found or created
            });
        }
    };

我的其他情况在findOrCreate失败。

1 个答案:

答案 0 :(得分:4)

根据我们的对话,错误消息和您的上一条评论,您的问题是您混合了环回模型API(服务器端API)和环回angularjs SDK(客户端)。 Loopback模型API和客户端API略有不同。像错误消息一样,客户端PersistedModel上不存在findOrCreate方法。

在客户端,您可以使用upsert方法,或者您可以检查是否存在记录,然后根据您可以插入的结果。查看有关客户端API的文档

http://apidocs.strongloop.com/loopback-sdk-angular/#persistedmodel-upsert

<强>更新

Loopback是一个基于nodejs的框架。您可以使用loopback轻松创建REST API。如果您想通过使用内置模型或创建自己的数据来与数据进行交互。这适用于服务器端,这是nodejs应用程序。

在客户端,您的数据可通过REST API访问。您可以对来自任何能够发出http请求的应用程序的CRUD数据使用HTTP请求。现在,环回还提供了一个客户端SDK,使事情变得更容易。当您使用lb-ng命令时,您已生成与环回REST API交互的AngularJS服务。这是一个客户端angularjs应用程序。