如何获取从Express(Node.js)中的表单传递的数据

我想要获取使用表单从页面传递的数据,并在redirect的页面中使用该数据。

我在客户端有这个表格。

<form action="game" method="get"> <input type="text" name="name"/> <input type="submit" /> </form> 

我的服务器上有这个脚本。

 app.get('/game',function(req,res){ res.sendfile(__dirname + '/game.html'); }); 

PLS的帮助。

为了让express能够很好的处理表单数据,你需要确保你包含bodyParser如下所示:

 var express = require('express'), app = express.createServer(); app.use(express.bodyParser()); //the rest of your configuration 

然后在您的POST处理程序中,您可以通过Request.body属性访问表单主体,如下所示:

 app.post('/game', function (req, res) { res.render('some-file', { name: req.body.name }); }); 

另外,如果您打算在响应中输出表单数据,则需要使用模板引擎(如Jade )。

不赞成, 下面的答案是正确的解决scheme

使用bodyParser.urlencoded( )中间件:

 const bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: true })); 

然后表单的值将在req.body:

 app.post('/game', function (req, res) { res.render('the_template', { name: req.body.name }); }); 

如果你需要访问你的视图中的variables名,你应该使用res.render函数,像这样传入variables

 res.render('game', { name: req.body.name } 

然后在玉做

 div!= name