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