如何将记录从MongoDB返回到EJS文件进行编辑?

时间:2019-05-05 16:20:37

标签: node.js mongodb express mongoose ejs

所以我尝试制作一个NodeJS项目,该项目在index.ejs文件中包含一个表单。填写详细信息后,它将通过router.post()方法将表单的内容发送到mongoDB数据库。然后,它将用户导航到list.ejs页面,该页面显示mongoDB数据库中的所有记录。现在,我已为用户提供了编辑或删除表中显示的任何记录的选项。我正在使用findById()函数将记录的_id返回到index.ejs中的表单。但是,我无法这样做。我已经在下面发布了代码...

我输入了一个类型为'hidden',名称=“ _id”和值=“ employee._id”的输入字段。但是,这表明我找不到雇员。我不知道如何将ID返回此表单元素。

  

index.ejs

<form action="/employee" method="POST">    
   <input type="hidden" name="_id" value= "<%= employee._id %>">
  

list.ejs

 <a href="/:id"><i class="fas fa-edit-alt"></i></a>
  

employeeController.js

 const Employee = mongoose.model("employee"); 

 router.get("/:id" , function (req, res) {
 Employee.findById(req.params.id, function (err, docs) { 
     if(!err){
         res.render("index" , {
             employee : docs    
         });
     }
  });
});

因此,基本上,当用户单击编辑(字体效果图标)时,它将发送一个get请求到“ /”,该请求被router.get(“ /:id”)和单击的记录的ID捕获。 Employee是模型(以及模式),而req.params.id获取单击记录的ID。 我已经将文档存储在index.ejs文件中使用的employee对象中。但是,它显示了“找不到员工变量”错误。

0 个答案:

没有答案