//Routes.js
module.exports = function(app){
var todolist = require('../controllers/todolistcontroller');
//Defining the routes
app.route('/tasks')
.get(todolist.list_all_tasks)
.post(todolist.create_a_newtask);
app.route('/tasks/taskId')
.get(todolist.read_a_task)
.put(todolist.update_a_task)
.delete(todolist.delete_a_task);
};
//Controller.js
var mongoose = require('mongoose'),
Task = mongoose.model('Tasks');
exports.list_all_tasks = function(req,res){
Task.find({},function(err,task){
if(err)
res.send(err);
res.json(task);
});
};
exports.create_a_newtask = function(req,res){
var newTask = new Task(req.body);
newTask.save(function(err,task){
if(err)
res.send(err);
res.json(task);
});
};
exports.read_a_task = function(req,res){
Task.findById(req.params.taskId,function(err,task){
if(err)
res.send(err);
res.json(task);
});
};
exports.update_a_task = function(req,res){
Task.findOneAndUpdate({_id:req.params.taskId},req.body,{new : true},function(err,task){
if(err)
res.send(err);
res.json(task);
});
};
exports.delete_a_task = function(req,res){
Task.remove({_id:req.params.taskId},function(err,task){
if(err)
res.send(err);
res.json({message:'Task deleted'});
});
};
在express.js
和nodejs
中使用具有mongoose
框架的RESTful Api编写简单的CRUD操作。经过POSTMAN的测试,可以收到整个数据库的响应,并且可以发布新数据。但是,PUT
和DELETE
方法不起作用。无法找出错误。
在此先感谢您的帮助。
这是我的代码
var mongoose = require('mongoose'),
Task = mongoose.model('Tasks');
exports.list_all_tasks = function(req,res){
Task.find({},function(err,task){
if(err)
res.send(err);
res.json(task);
});
};
exports.create_a_newtask = function(req,res){
var newTask = new Task(req.body);
newTask.save(function(err,task){
if(err)
res.send(err);
res.json(task);
});
};
exports.read_a_task = function(req,res){
Task.findById(req.params.taskId,function(err,task){
if(err)
res.send(err);
res.json(task);
});
};
exports.update_a_task = function(req,res){
Task.findOneAndUpdate({_id:req.params.taskId},req.body,{new : true},function(err,task){
if(err)
res.send(err);
res.json(task);
});
};
exports.delete_a_task = function(req,res){
Task.remove({_id:req.params.taskId},function(err,task){
if(err)
res.send(err);
res.json({message:'Task deleted'});
});
};