首页 > 解决方案 > 提交后我的数据没有在 mongo 中更新

问题描述

每当我单击更新时,我都会使用 get,此 get 使我进入 edit.hbs 表单,并且从 id 数据出现在该表单中,但是在提交后它只会使我显示数据未更新。而且我有一个帖子,其中数据将从 id 获取并会更新,但是在单击提交后它只会将我重定向到显示页面。

app.get("/edit/:id", function(req, res, next) {

  const id = req.params.id,
    edit = Userlogin.findById(id);
  edit.exec(function(err, data) {
    if (err) throw err;
    res.render("edit", {
      records: data
    });
  });
});


app.post("/update/", function(req, res, next) {
  const update = Userlogin.findByIdAndUpdate(req.body.id, {
    firstname: req.body.firstname,
    lastname: req.body.lastname,
    email: req.body.email,
    phone: req.body.phone,
    age: req.body.age,
    dob: req.body.dob,
    rollno: req.body.rollno,
  });
  update.exec(function(err, data) {
    if (err) throw err;
    res.redirect("/display");
  });
});
<h1> student profile</h1>
<form action="/update/" method="POST" enctype="multipart/form-data">
  <input type="hidden" name="id" value="{{records._id}}">
  <div>
    <label>FIRST NAME</label>
    <input type="text" name="firstname" value="{{records.firstname}}">
  </div>
  <br>
  <div>
    <label>LAST NAME</label>
    <input type="text" name="lastname" value="{{records.lastname}}">
  </div>
  <br>
  <div>
    <label>EMAIL</label>
    <input type="text" name="email" value="{{records.email}}">
  </div>
  <br>
  <div>
    <label>PHONE NUMBER</label>
    <input type="number" name="phone" value="{{records.phone}}">
  </div>

  <br><br>
  <div>
    <label>AGE</label>
    <input type="number" name="age" value="{{records.age}}">
  </div>
  <br>
  <label>enter dob</label>
  <input name="dob" type="date" value="{{records.dob}}">
  <br>
  <label>enter roll no</label>
  <input name="rollno" type="text" value="{{records.rollno}}">
  <br>
  <div>

    <br>
    <input type="submit" value="submit"></input>
</form>

标签: htmlnode.jsmongodbexpressmongoose

解决方案


推荐阅读