使用Mongoose NodeJS从MongoDB中删除数据

时间:2017-11-11 20:55:34

标签: node.js mongodb mongoose

这是我的文件从mongoose

获取数据

路由器文件(正常工作)

router.get('/' , function(req ,  res , next) {
ClassModel.find({}).exec(function(err , Classes) {
if(err) throw err;
res.render('classlist', { "Classes": Classes}); 
});
});

现在将数据传递给查看(工作)

<% Classes.forEach(function(Class , index){%>
<tr>
<td><%= index+1. %></td>
<td><%= Class.Class_Name %></td>
<td><%= Class.Class_ID %></td>
<td><%= Class.Class_Key %></td>
<td>
 <form action="/DeleteClass" method="post"><input type="submit" value="delete"</form>
<td></tr>
<%});%>

现在这是delete.js文件无法正常工作

router.delete('/', function(req, res){
ClassModel.remove({_id: req.params.id}, function(err){
if(err) res.json(err);
res.render('deleteClass');
});
});

1 个答案:

答案 0 :(得分:1)

首先,您必须在表单中更改要删除的请求方法,并将类ID添加到操作路由中:

<form action="/DeleteClass/<%= Class._id%>" method="delete">
  <input type="submit" value="delete"> // don't forget to close input tag
</form>

之后,将路线更改为/:id,以便您可以访问req.params.id值:

router.delete('/:id', function(req, res){
   ClassModel.remove({_id: req.params.id}, function(err){
     if(err) res.json(err);
       res.render('deleteClass');
   });
});