我一直在寻找像我一样的类似情况,而且我已经看到这种错误很常见,但我无法找到解决问题的正确方法。我真的很感激任何帮助。
我现在的问题是当我执行它时它会返回HTTP 200并在我的终端上打印一行确认我创建了JSON文件。没有错误,但是当我查看我的数据库时,其中没有任何内容。
到目前为止我已尝试过:
newBook.save(flush:true)
将我的数据源从create-drop编辑为更新(但是我的整个数据库都消失了,所以我返回了数据。我只需要在演示期间保存它,所以我知道每次应用程序重启时数据都会丢失)
Postman GET和POST
GET:200 OK
POST:200 OK
但是当我再次获得时,没有任何显示
我希望这些数据可以提供有关我的问题的详细信息,我对任何问题都持开放态度。
以下是我的示例代码:
后端代码:Grails 2.5.0
域类
StringBuilder sb = new StringBuilder("----");
sb.setCharAt(1, 'a');
sb.setCharAt(3, 'a');
String s= sb.toString(); // -a-a
控制器
class Book {
String name
int page
boolean new
static belongsTo = [student: student]
static constraints = {
}
}
前端代码:AngularJS
控制器 app.controller(' Book',function($ scope,store,$ state,bookFactory){
import grails.converters.JSON
import org.springframework.security.access.annotation.Secured
@Secured('permitAll')
class BookController {
def index() {
render Book.list() as JSON
}
def save() {
def newBook = new Book(request.JSON)
newBook.save(flush: true)
println request.JSON
render(['success': true] as JSON)
}
def show() {
def Book = Book.get(params.id)
render Book as JSON
}
}
服务
$scope.book = {}
$scope.saveBook = function() {
$scope.book.assessment = $scope.getBook();
console.log($scope.book);
bookFactory.save($scope.book,function (result){
console.log(result)
}, function (error) {
console.log(error)
})
}
$scope.getBook = function() {
var result = "";
if ($scope.book.page > 10){
result = "many pages";
}else if ($scope.book.new && $scope.book.page > 20){
result = "new and many pages";
}else {
result = "old book";
}
return result;
};
})
app.js
app.factory('bookFactory', ['$resource', function ($resource) {
return $resource('api/book',
{
'update': {method: 'PUT'}
})
}])
HTML
.state("book", {
url: "/book",
templateUrl: "assets/app/partials/book.html",
controller: 'Book',
data: {
requiresLogin: true
}
})