Javascript 为什么表单体在PUT请求时返回null?

Javascript 为什么表单体在PUT请求时返回null?,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,为什么表单数据没有存储在req.body中 EJS/HTML <form onsubmit="EditJob()" class="editForm"> <div class="form-group-edit"> <label for="position">Position</label> <input type="position" id="position" name="position" cla

为什么表单数据没有存储在req.body中

EJS/HTML

<form onsubmit="EditJob()" class="editForm">
      <div class="form-group-edit">
        <label for="position">Position</label>
        <input type="position" id="position" name="position" class="form-control" placeholder="Enter Position Title"
        />
      </div>
      <div class="form-group-edit">
        <label for="company">Company</label>
        <input type="company" id="company" name="company" class="form-control" placeholder="Enter Company Name"
        />
      </div>

      <button type="submit" class="edit">
        <i class="fas fa-plus"></i>
      </button>
    </form>
服务器JS

router.put("/:id", (req, res) => {
  Job.findByIdAndUpdate(req.params.id, {
    position: req.body.position,
    company: req.body.company,
    status: req.body.status
  })
...
...
});
“我的数据库”中更新的文档将导致{position:null,company:null,status:null}..

请确保您使用的是正文解析器,或者像下面的代码一样设置express中间件:

app.useexpress.json app.useexpress.urlencoded{extended:true} ⚠️ 使用axios.put时,请确保将数据传递到其中。您可以阅读文档

例如:Axios Put

axios.putendPoint、数据、配置然后…捕获。。。
我希望它能帮助您。

OP的问题是第二件事。您必须使用axios.put发送数据。
router.put("/:id", (req, res) => {
  Job.findByIdAndUpdate(req.params.id, {
    position: req.body.position,
    company: req.body.company,
    status: req.body.status
  })
...
...
});