表单提交后“等待本地主机”:node / express / react

时间:2018-06-26 03:10:27

标签: node.js reactjs express localhost

我正在使用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()发送数据,则整个前端网页将被删除并替换为后端发送的任何数据。

通常使用表单提交,您在提交后将用户发送到其他网页。但就我而言,我希望用户停留在同一页面上而不重新加载页面。

在这种情况下,如何使错误消息消失?

1 个答案:

答案 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调用。