我正在研究MEAN堆栈应用程序,课程管理器,它可以添加,删除,编辑和保存类。我遇到了编辑功能部分的问题。当我调用updateCourse()函数时,chrome显示此错误: angular.js:7772 PUT http://localhost:3000/courses/5807a8a8542607e01aaf1eb5 404(未找到)我可以在我的MongoDB中找到此ID:5807a8a8542607e01aaf1eb5,
{
"_id" : ObjectId("5807a8a8542607e01aaf1eb5"),
"courseName" : "web development",
"courseID" : "cs 602",
"created_at" : ISODate("2016-10-19T17:08:56.226Z"),
"__v" : 0
}
但角度无法得到它。 我认为我的node.js部分和数据库部分工作正常,因为我使用PUT方式的高级REST测试http://localhost:3000/api/courses,它给我200:好的。然而,角度部分,我不知道发生了什么。如果有人可以提供帮助,那么非常感谢你们。这是我的代码: 角度部分:
$scope.updateCourse= function (course) {
$http.put('/courses' + course._id,{courseID: course.updatedCourseId,
courseName:course.updatedCourseName}).success(function(response){
$scope.courses = courseService.query();
course.isEditing = false;
});
Node.js Part:
router.put('/courses/:id',function (req,res) {
var id = req.params.id;
console.log(req.body);
Course.update({_id:mongoose.Types.ObjectId(id)},{
$set:{courseID: req.body.courseID,
courseName: req.body.courseName}
},function (err) {
if (err) {console.log(err);}
res.send("Updated");
})
});
MongoDB部分:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var courseSchema = new mongoose.Schema({
courseID: String,
courseName: String,
isEditing: Boolean,
created_at: {type: Date, default: Date.now}
});
mongoose.model('Course', courseSchema);