我正在使用环回。我希望创建记录,如果它不存在。我使用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
失败。
答案 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应用程序。