我想获取使用表单从页面传递的数据,并在重定向的页面中使用该数据。
我在客户端有这样的表单:
<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');
});
我想获取使用表单从页面传递的数据,并在重定向的页面中使用该数据。
我在客户端有这样的表单:
<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');
});
5条答案
按热度按时间wrrgggsh1#
使用
bodyParser.urlencoded(
)中间件:然后表单值将在req.body上:
设置
{ extended: true }
允许bodyParser在表单数据中接受类似json的数据,包括嵌套对象。例如,使用javascript发送的{ person: { name: Adam } }
,而不是传统HTML表单发送的名称值对。如果您不需要,您可以将扩展值设置为false。不定义扩展选项(即使用默认设置)显然是不赞成的,他们似乎想让你决定是否需要嵌套选项或纯名称/值对。如果你想在express服务器中解析一些路由的表单数据和其他路由的json数据,你可以用途:
urlencoded()
用于x-www-form-urlencoded内容类型true
-用于嵌套数据结构false
-用于名称值对json()
-用于应用程序/json内容类型注意,form/multipart需要不同的body解析器(比如Multer)
更新:如果你得到ExpressJS关于Body-Parser被弃用的错误修复
替换
作者
3xiyfsfu2#
重要提示:这是不推荐的,accepted answer是正确的解决方案。
为了让express能够很好地处理表单数据,你需要确保你包含了
bodyParser
,如下所示:然后在POST处理程序中,您可以通过
Request.body
属性访问表单主体,如下所示:如果您打算在响应中输出表单数据,还需要使用模板引擎(如Jade)。
z31licg03#
或者你可以简单地使用express:
wz8daaqr4#
如果你需要在视图中访问变量名,你应该使用
res.render
函数并像这样传递变量:然后在玉做
enxuqcxy5#
在index.html文件中:
在主文件中包含这两个中间件,以便将表单中的数据导入express
这样我们就可以用