Loopbackjs 在PersistedModel中查找或创建

Loopbackjs 在PersistedModel中查找或创建,loopbackjs,strongloop,Loopbackjs,Strongloop,我正在使用环回。我希望创建一个不存在的记录。我使用了Modal.findOrCreate方法来维护唯一性,但它的findOrCreate显示错误不是一个函数,而是文档显示的。我尝试的是 Poet.findOrCreate({where: {name: query.name}}, {name:query.name},function(response){ console.log(response); }); 我正在编辑我写的完整功能的问题 $scope.

我正在使用环回。我希望创建一个不存在的记录。我使用了
Modal.findOrCreate
方法来维护唯一性,但它的findOrCreate显示错误不是一个函数,而是文档显示的。我尝试的是

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

我的else条件是在
findOrCreate上失败

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

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

更新

Loopback是一个基于nodejs的框架。您可以使用环回轻松创建RESTAPI。如果您想与数据交互,可以使用内置模型或创建自己的模型。这在服务器端工作,这是nodejs应用程序


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

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

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

更新

Loopback是一个基于nodejs的框架。您可以使用环回轻松创建RESTAPI。如果您想与数据交互,可以使用内置模型或创建自己的模型。这在服务器端工作,这是nodejs应用程序


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

这段代码应该可以工作。你的问题可能与你的模型有关。你能提供一些细节吗?第二件事,callback接受两个参数error和instance(参见文档)。您正在写入控制台的“响应”将是错误对象。应该类似于函数(err,instance){if(err)console.log(err);console.log(instance);//instance found或created}我还没有在模型中编写任何代码。它完全是空白的。由于它的内在功能,我认为它应该工作。我只是创建了一个模型,并将其与MySQL相关联。没错,这个方法是PersistedModel的成员,这就是为什么我假设变量“poter”不包含model。你们能告诉我你们把这段代码放在哪里吗?我把这段代码放在Angular COntroller中,当我检查lb服务文件时,它也并没有在那个文件中提到。那个段代码应该可以工作。你的问题可能与你的模型有关。你能提供一些细节吗?第二件事,callback接受两个参数error和instance(参见文档)。您正在写入控制台的“响应”将是错误对象。应该类似于函数(err,instance){if(err)console.log(err);console.log(instance);//instance found或created}我还没有在模型中编写任何代码。它完全是空白的。由于它的内在功能,我认为它应该工作。我只是创建了一个模型,并将其与MySQL相关联。没错,这个方法是PersistedModel的成员,这就是为什么我假设变量“poter”不包含model。你能告诉我你把这个代码放在哪里吗?当我检查lb服务文件时,我把这个代码放在Angular COntroller中,作为Poter Model的依赖项,它也没有在那个文件中提到。对不起,我不清楚,因为我是初学者。findOrCreate是NodeAPI对吗?然后,如果不是在客户端API上,它将在哪里使用?我将更新我的答案,使其更清楚。对不起,如果我把你弄糊涂了。对不起,我不清楚,因为我是初学者。findOrCreate是NodeAPI对吗?然后,如果不是在客户端API上,它将在哪里使用?我将更新我的答案,使其更清楚。对不起,我把你弄糊涂了。