node.js / express不需要从当前页面redirect发送请求

我有一个node.js快速应用程序试图发出一个请求,并查询数据库的内容。 我试图执行发布请求,而不必redirect用户从表单页面或重新加载页面。

index.jade

form.well(id="newEntryForm", method="post", action="/addEntry") label Key: br input(name="key", id="key", class="new-entry", type="textbox") br br label Value: br input(name="value", id="value", class="new-entry", type="textbox") br br button.btn(type="submit") Add Entry 

app.js

 app.post('/addEntry', function(req, res){ //database query }); 

这最终将我redirect到URL localhost:3000/addEntry 。 我知道我可以添加res.redirect("/"); 在post方法的callback中,但是会重新加载页面。 如何在不重新加载页面的情况下完成此操作?

编辑

我添加了一个javascript方法来执行提交表单,但是它最终会在URL栏上附加POST请求参数。 我如何避免这种情况?

Javascript方法

 $(function() { $('#newEntryForm').submit(function() { var data = {key: 'a', value: 'b'}; // build a json object or do something with the form, store in data $.post('/addRule', data, function(resp) { alert(resp); console.log("post response: " + resp); // do something when it was successful }); }); }); 

       

网上收集的解决方案 "node.js / express不需要从当前页面redirect发送请求"

正如一个评论所说,你需要使用客户端的JavaScript + AJAX。

 $(function() { $('#newEntryForm').submit(function(event) { event.preventDefault(); // Stops browser from navigating away from page var data; // build a json object or do something with the form, store in data $.post('/addEntry', data, function(resp) { alert(resp); // do something when it was successful }); }); });