无法在 MEAN 堆栈应用程序中写入 post 请求
Failing to write post request in MEAN stack app
我正在尝试将教程改编到另一个项目,以掌握平均堆栈的窍门,并 运行 因 post 请求而陷入困境。
我正在尝试向评论数组添加一个新元素:
var CourseSchema = new mongoose.Schema({
code: String,
name: String,
reviews: [{
body: String
}]
前面我有以下调用课程服务addReview函数的函数:
courses.addReview($scope.course._id, tempReview).success(function (review){
//$scope.course.reviews.push(review);
console.log('addingReview');
});
课程服务addReview函数为:
o.addReview = function (id, review) {
console.log('posting Review')
return $http.post('/courses/'+ id + '/reviews', review );
};
所有这一切都应该没问题,因为我的 post 请求已成功发送到服务器(我在 post 的控制台上收到一条 200 消息)。
这是我后端的代码:
var Course = mongoose.model('Course');
router.post('/courses/:course/reviews', function ( req, res, next){
Course.findById(req.course, function (err, course){
course.addReview(req.body);
res.json(course);
res.end();
})
});
以及我的课程模型中的 addReview 函数:
CourseSchema.methods.addReview = function (review) {
this.reviews.push(review);
this.save(review);
};
我已经阅读了几篇博客 post 但仍然不明白如何编写 post 数组请求...任何帮助将不胜感激!
谢谢
据我了解,我进行了修改但没有将其保存在数据库中,这是我现在使用的代码:
router.post('/courses/:course/reviews', function ( req, res, next){
Course.findById(req.course, function (err, course){
course.addReview(req.body);
course.save(function (err, course){
if(err){ return next(err);}
console.log(course);
res.json(course);
res.end();
});
})
});
我正在尝试将教程改编到另一个项目,以掌握平均堆栈的窍门,并 运行 因 post 请求而陷入困境。
我正在尝试向评论数组添加一个新元素:
var CourseSchema = new mongoose.Schema({
code: String,
name: String,
reviews: [{
body: String
}]
前面我有以下调用课程服务addReview函数的函数:
courses.addReview($scope.course._id, tempReview).success(function (review){
//$scope.course.reviews.push(review);
console.log('addingReview');
});
课程服务addReview函数为:
o.addReview = function (id, review) {
console.log('posting Review')
return $http.post('/courses/'+ id + '/reviews', review );
};
所有这一切都应该没问题,因为我的 post 请求已成功发送到服务器(我在 post 的控制台上收到一条 200 消息)。
这是我后端的代码:
var Course = mongoose.model('Course');
router.post('/courses/:course/reviews', function ( req, res, next){
Course.findById(req.course, function (err, course){
course.addReview(req.body);
res.json(course);
res.end();
})
});
以及我的课程模型中的 addReview 函数:
CourseSchema.methods.addReview = function (review) {
this.reviews.push(review);
this.save(review);
};
我已经阅读了几篇博客 post 但仍然不明白如何编写 post 数组请求...任何帮助将不胜感激!
谢谢
据我了解,我进行了修改但没有将其保存在数据库中,这是我现在使用的代码:
router.post('/courses/:course/reviews', function ( req, res, next){
Course.findById(req.course, function (err, course){
course.addReview(req.body);
course.save(function (err, course){
if(err){ return next(err);}
console.log(course);
res.json(course);
res.end();
});
})
});