为什么表单正文在 PUT 请求上返回空值?



为什么表单数据没有存储在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

const EditJob = () => {
const id = ####;
const url = `http://localhost:5000/dashboard/${id}`;
axios.put(url).then(res => {
console.log(res);
});
};

服务器 JS

router.put("/:id", (req, res) => {
Job.findByIdAndUpdate(req.params.id, {
position: req.body.position,
company: req.body.company,
status: req.body.status
})
...
...
});

我的数据库中更新的文档导致{位置:空,公司:空,状态:空}。

确保你使用的是body-parser,或者像下面的代码一样设置你的快速中间件

app.use(express.json())
app.use(express.urlencoded({ extended: true }))

⚠️ 当您使用axios.put()时,请确保将data传入其中。您可以在此处阅读文档

一个例子:Axios put

axios.put(endPoint, data, config).then(...).catch(...)

我希望它能帮助你。

最新更新