在 PersistedModal 中查找或创建

findOrCreate in PersistedModal

我正在使用环回。如果不存在,我希望创建记录。我使用 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
            });
        }
    };

我的其他条件在 findOrCreate 上失败了。

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

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

的文档

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

更新

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

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