在 NodeJS 快递中;如何从表单 post 获取表单属性?
In NodeJS express; How can I get form properties from a form post?
节点-v
v10.15.0
我在通过 AJAX 加载的页面上有多个标准表单(所以我不知道有多少或来自哪里)。每个都有一个表单名称。
我想获取表单属性,但它们没有在 req.body 变量中返回。
在下面的示例中,我想访问名为 form1 的表单。我查看了请求对象,但找不到已提交表单的描述。
如何获取表单的名称、方法和操作等属性?我需要对内置的正文解析器做些什么吗?
例子是:
<form method='post' name='form1'>
<input type='submit'>
</form>
在节点快递方面,我有以下内容:
app.post('/', function(req, res, next)
{
console.log(req.body);
process.exit(1);
});
控制台显示{}
我不认为这是一个重复问题。花了一个小时左右的时间搜索这个答案。
How can I get the form attributes such as name and method and action? Do I need to do something to the in built body parser?
不,只有设计用于在表单中包含数据的表单元素会随表单自动发送 post。不发送 form
父元素的属性,例如 name
和 action
。
表单中经常使用的一个技巧是在表单中插入一个隐藏元素(用户看不到的元素)并将数据放入要发送到服务器的元素中。然后服务器可以像任何其他命名的表单元素一样访问数据。您可以在最初设计表单时填充这些元素,也可以在提交表单之前随时使用 Javascript 动态填充它们。
例如:
<form method='post' name='form1' action="/form1Submit">
<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 中间件,那么当提交此表单时,您将能够在您的 express 服务器中访问 req.body.action
和 req.body.formName
以及 req.body.data
。
节点-v v10.15.0
我在通过 AJAX 加载的页面上有多个标准表单(所以我不知道有多少或来自哪里)。每个都有一个表单名称。
我想获取表单属性,但它们没有在 req.body 变量中返回。
在下面的示例中,我想访问名为 form1 的表单。我查看了请求对象,但找不到已提交表单的描述。
如何获取表单的名称、方法和操作等属性?我需要对内置的正文解析器做些什么吗?
例子是:
<form method='post' name='form1'>
<input type='submit'>
</form>
在节点快递方面,我有以下内容:
app.post('/', function(req, res, next)
{
console.log(req.body);
process.exit(1);
});
控制台显示{}
我不认为这是一个重复问题。花了一个小时左右的时间搜索这个答案。
How can I get the form attributes such as name and method and action? Do I need to do something to the in built body parser?
不,只有设计用于在表单中包含数据的表单元素会随表单自动发送 post。不发送 form
父元素的属性,例如 name
和 action
。
表单中经常使用的一个技巧是在表单中插入一个隐藏元素(用户看不到的元素)并将数据放入要发送到服务器的元素中。然后服务器可以像任何其他命名的表单元素一样访问数据。您可以在最初设计表单时填充这些元素,也可以在提交表单之前随时使用 Javascript 动态填充它们。
例如:
<form method='post' name='form1' action="/form1Submit">
<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 中间件,那么当提交此表单时,您将能够在您的 express 服务器中访问 req.body.action
和 req.body.formName
以及 req.body.data
。