在NodeJS Express中;我可以从表单发布中获取表单属性吗?

问题描述 投票:0回答:1

node -vv10.15.0

我在通过AJAX加载的页面上有多个标准表单(因此我不知道从哪里来多少个)。每个都有一个表单名称。

我想获取表单属性,但不会在req.body变量中返回它们。

在下面的示例中,我想以form1的形式访问表单名称。我查看了req对象,但是找不到对已提交表单的描述。

如何获得表单属性,例如名称,方法和动作?我需要对内置的解析器做些什么吗?

示例是:

<form method='post' name='form1'>
       <input type='submit'>
</form>

在节点表示端,我有以下内容:

app.post('/', function(req, res, next)
{
    console.log(req.body);
    process.exit(1);
});

控制台显示{}

我不认为这是重复的问题。花了一个小时左右的时间来寻找这个答案。

node.js forms express post body-parser
1个回答
0
投票

否,只有设计为包含表单数据的表单元素会随表单发布自动发送。不发送父级form元素的属性,例如nameaction

表单中经常使用的一种技巧,它是在表单中插入一个隐藏元素(用户看​​不到的元素),然后将数据放入要发送到服务器的该元素中。然后,服务器可以像其他任何命名的表单元素一样访问数据。您可以在最初设计表单时填充这些元素,也可以在提交表单之前的任何时候使用Javascript动态填充它们。

例如:

 <form method='post' name='form1'>
    <input type="hidden" name="action" value="post">
    <input type="hidden" name="formName" value="form1">
    Enter your data here: <input name="data">
    <input type='submit'>
 </form>

假设您已经适当配置了body-parser中间件,那么在提交此表单时,您将可以访问req.body.actionreq.body.formNamereq.body.data

© www.soinside.com 2019 - 2024. All rights reserved.