所以我尝试了
的建议但我仍然得到一个空的req.body
我可以做得很好,甚至传递一个id来获取。但我似乎无法POST并将数据传输到服务器。
控制器:
.controller("createEventController", ["$scope", 'CreateEventService', '$location', function($scope, CreateEventService, $location){
$scope.event = {};
$scope.submitEvent = function(){
console.log($scope.event);
var events = new CreateEventService($scope.event);
console.log(events);
events.save(function(response){
console.log(response);
}, function(error){
console.log(error);
});
}
}])
服务
factory('CreateEventService', function($resource){
return $resource('api/createEvent');
});
答案 0 :(得分:2)
将events.save(...)
更改为events.$save(...)
答案 1 :(得分:1)
您应该使用bodyParser.json()
。 $resource
默认情况下会使用标头"Content-Type": "application/json;charset=UTF-8"
发送他的请求,而bodyParser.json()
没有{{1}}您的API无法处理请求内容。
答案 2 :(得分:0)
如果使用express 4.1.2,尽管它已经不赞成使用了bodyParser(),而且
app.use(bodyParser.urlencoded({
extended: true
}));
出于某种原因,给了我一个空洞的身体。无论出于何种原因,没有 urlencoded 之前崩溃了我的服务器(我认为旧的快速版本)。只需将其更改回(使用快速4.1.2)
app.use(bodyParser());
并修复。我还删除了因为导致我的服务器挂起的methodOverride()。如果有人知道更多正确的方法,我将不胜感激。