我正在使用node / express / react。我在前端使用一种表单从后端数据库中删除条目:
<form id="delete" action="/delete" method="POST">
<p>First name:</p>
<input type="text" name="first" />
<p>Last Name:</p>
<input type="text" name="last" />
<input type="submit" value="delete person from database" />
</form>
该条目将从后端数据库中删除。但是我在前端浏览器窗口的底部收到了此消息:
正在等待本地主机...
然后大约一分钟后,我得到了:
“此页面无法正常运行 本地主机未发送任何数据。 ERR_EMPTY_RESPONSE“
以下是相关的快递终点:
app.post('/delete', function(req, res) {
var first = req.body.first;
var last = req.body.last;
db.collection("employees").remove({first:first, last:last}, function(error, response) {
if (error) throw error;
console.log("success");
});
});
如果我通过res.send()或res.json()发送数据,则整个前端网页将被删除并替换为后端发送的任何数据。
通常使用表单提交,您在提交后将用户发送到其他网页。但就我而言,我希望用户停留在同一页面上而不重新加载页面。
在这种情况下,如何使错误消息消失?
答案 0 :(得分:0)
对于问题“在这种情况下如何消除错误消息?”的节点/表达部分,您必须从端点发送某种响应:
app.post('/delete', function(req, res) {
var first = req.body.first;
var last = req.body.last;
db.collection("employees").remove({first:first, last:last}, function(error, response) {
if (error) throw error;
console.log("success");
res.status(200).send({msg: `Deleted ${first} ${last}, RIP`}); //returning a status object, but you could return anything useful to the client code here.
});
});
这可以消除错误,但是您仍将被重定向到显示该API的JSON输出的页面。
here讨论了提交表单后留在同一页面上的问题,以及许多其他帖子。您提到它是一个React应用程序-您可能想使用该框架从前端进行API调用。