我正在學習MEAN堆棧,並且已經創建了一個REST API,它將檢查發佈到MongoDB中的集合。
給出我所定義的服務:
angular.module('myApp')
.constant('baseURL', 'http://localhost:8080/');
angular.module('myApp')
.service('addReviews', ['$resource', 'baseURL', function($resource, baseURL) {
this.getReviews = function() {
return $resource(baseURL+'reviews/', null, {'save': {method: 'POST'}});
};
}]);
現在,我打電話從我的控制器此服務:
angular.module('myApp', ['ngResource'])
.controller('reviewController', ['$scope', 'addReviews', function($scope, addReviews) {
$scope.reviewSubmit = function() {
$scope.receivedReviews = false;
var review = {
// some data
};
$scope.reviews = addReviews.getReviews().query(
function(response) {
$scope.reviews = response;
$scope.receivedReviews = true;
},
function(response) {
$scope.reviews = response;
// print error message
}
);
console.log($scope.reviews); // showing empty array
};
}]);
在routes.js,我已經配置了我的路線爲:
var Reviews = require('./models/reviews');
...
app.post('/reviews', function(req, res) {
Reviews.create(req.body, function(err, post) {
if (err) {
return res.send(err);
}
return res.json(post);
});
});
我想發表評論集合的新評論。但是,$ scope.reviews顯示一個空數組。我記錄了這些請求,並且它顯示GET請求正在/正在評論而不是POST。我想我應該使用save()而不是query(),但是我已經看到一些在線的教程,儘管在服務中使用了PUT/POST方法,但他們使用了query()。我很困惑。任何人都可以指出我如何將數據(var review
)發佈到評論集合?