使用 NodeJS 从 HTML 表单执行 PATCH/PUT 请求更新 MongoDB 数据
2024-03-07 20:25:42
用NodeJS从HTML表单执行PATCH请求:指南和最佳实践
在现代网络开发中,更新服务器上的数据是至关重要的。本文将指导你使用NodeJS从HTML表单执行PATCH请求,这是一种用于更新部分数据记录的HTTP方法。
NodeJS API结构
app.route("/requests/:rollno")
.get(function(req, res) {
// get method to find a query
})
.patch(function(req, res) {
Request.update({
rollno: req.params.rollno
}, {
$set:req.body
},
function(err) {
if (!err) {
res.send("Successfully updated requests");
}else{
res.send(err);
}
}
);
});
PATCH端点 :此端点接收一个带有更新数据的请求正文,并使用 $set
操作符更新具有指定 rollno
的记录。
前端表单代码
<form action="/requests/21" method="PATCH">
<input type="text" name="status[0]">
<div id="participant"></div>
<br>
<button type="button" onclick="addParticipant()">Add</button>
<button type="button" onclick="delParticipant()">Remove</button>
<div class="btn-block">
<button type="submit" href="/success">Submit Request</button>
</div>
</form>
表单 :此表单包含一个文本输入字段(用于更新状态),一个动态添加参与者的元素(#participant
),以及添加、删除参与者的按钮。提交按钮的 href
属性应更改为 action
,指向PATCH端点。
问题和解决方案
尝试从表单执行PATCH请求时遇到的一个常见问题是更新不起作用。这是因为表单的 action
属性指向了一个无效的端点。它应该指向PATCH端点,例如 /requests/21
。
备选方法:PUT请求
除了PATCH请求外,你还可以使用PUT请求来更新记录。PUT请求将替换现有记录的整个内容,而PATCH请求仅更新指定的字段。
NodeJS API :
app.route("/requests/:rollno")
.put(function(req, res) {
Request.findOneAndUpdate({
rollno: req.params.rollno
}, req.body,
function(err, updatedRequest) {
if (!err) {
res.send("Successfully updated request");
}else{
res.send(err);
}
}
);
});
前端表单 :
<form action="/requests/21" method="PUT">
结论
使用NodeJS执行PATCH或PUT请求来更新MongoDB数据库中的记录是一个常见的任务。通过遵循本文中概述的步骤,你可以有效地实施这些请求,确保你的应用程序能够更新数据并满足用户的需求。
常见问题解答
1. 什么是PATCH请求?
答:PATCH请求是一种HTTP方法,用于更新部分数据记录。
2. 什么是PUT请求?
答:PUT请求是一种HTTP方法,用于替换现有数据记录的整个内容。
3. 如何从HTML表单执行PATCH请求?
答:在HTML表单中,将表单的 action
属性设置为PATCH端点,并使用 $set
操作符将更新数据发送到服务器。
4. 如何从HTML表单执行PUT请求?
答:在HTML表单中,将表单的 action
属性设置为PUT端点,并使用 findOneAndUpdate()
方法替换现有记录。
5. 我在哪里可以找到有关NodeJS API的更多信息?
答:有关NodeJS API的更多信息,请参阅官方文档:https://expressjs.com/en/api.html