Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js &引用;“正在等待本地主机”;表单提交后:节点/快速/反应_Node.js_Reactjs_Express_Localhost - Fatal编程技术网

Node.js &引用;“正在等待本地主机”;表单提交后:节点/快速/反应

Node.js &引用;“正在等待本地主机”;表单提交后:节点/快速/反应,node.js,reactjs,express,localhost,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" nam

我正在使用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>
如果我确实通过res.send()或res.json()发送数据,那么整个前端网页将被擦除,并替换为从后端发送的任何数据

通常在表单提交时,您会在提交后将用户发送到不同的网页。但是在我的例子中,我希望用户在不重新加载页面的情况下保持在同一页面上


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

对于问题的node/express部分,“在这种情况下,如何让错误消息消失?”,您必须从端点发送某种响应:

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");
    });

});
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输出的页面


在提交表单后保持在同一页面是讨论的内容,还有许多其他帖子。您提到它是一个React应用程序——您可能希望使用该框架从前端进行API调用。

有什么原因不通过Ajax请求进行此操作吗?我不确定。该页面不应该更新,因此我不确定如何/为什么使用ajax。谢谢henry。所以你是说这个错误与我想呆在同一页上有关。。。我以为是别的原因造成了这个错误。我知道保持一致的诀窍:。但是express使用action=“/delete”作为端点。可能我需要使用将信息获取到服务器终结点,然后编写myFunction将表单数据获取到服务器上的/delete终结点。如果希望在不离开页面的情况下重复使用表单,使用套接字/侦听器是更好的范例吗?不,在服务器上对API使用http请求是完全正常的。基本上,任何基于AJAX的东西都可以做到这一点(包括任何SPA体系结构——Angular、React,甚至jquery和DOM都支持这一点)。传统的表单+动作用户界面早于这些技术,这正是您目前所拥有的。但是现在没有任何真正的理由限制你的应用程序使用纯HTML。AJAX(即向服务器发出http请求并返回数据而不是新页面)已经存在很长时间了。更清楚的是,除了当前表单的HTML之外,所有其他技术都在客户端使用JavaScript。你在帖子中提到react,所以我假设你的应用程序中已经有了一些。下面是一个很好的教程,介绍了如何使用react:ThankeHenry提交一个非常简单的表单。我感觉可以从表单标记中省略action=“/delete”,完全使用javascript onSubmit()处理表单提交。我