表单上的JS提交留在页面上

我知道这可能是一个简单的问题,并有一个教程的地方,但我似乎无法find它。 我使用express-generator生成了一个应用程序,并向路线添加了一个简单的表单

意见/ form.ejs

 <div> <h1>This is <%= name %></h1> <form action="/form" method="POST"> <input type="text" name="question" placeholder="question"><br> <input type="text" name="answer" placeholder="answer"><br> <input type="submit"> </form> 

我想要做的是在表单提交后处理请求,而不对页面做任何事情。 基本上我希望它保持不变,所以我尝试了以下

路线/ index.js

 var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); }); router.get('/form', function (req, res) { res.render('form', {name: "My Name"}); }); router.post('/form', function (req, res) { console.log(req.body); }); module.exports = router; 

发生的事情是,浏览器不断等待服务器的响应。 我尝试添加next()但它给出了一个错误,我也尝试从函数返回没有用。 那么我怎样才能提出一个请求或处理任何路线,而不需要回应客户呢?

我想这里的问题是“你为什么要这么做? 你想通过允许不响应客户的请求来实现什么?

我认为最好的办法是做res.json(successOrFailureMessage),这样你的客户端应用程序就会被告知发生了什么,并且可以从那里做一些事情(甚至没有任何事情)。 否则,它会挂起,等待回应。

根据评论更新答案

将parameter passing给ejs:

 app.get('/form', function(req, res) { res.render('form.ejs', { question: req.body.question, answer: req.body.answer }); 

更新您post邮政编码到:

 router.post('/form', function (req, res) { console.log(req.body); res.render('form', {req: req.body}); });