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上,它将在哪里使用?我将更新我的答案,使其更清楚。对不起,我把你弄糊涂了。