【发布时间】:2017-03-02 22:54:14
【问题描述】:
我正在使用带有 node.js 的服务器端 javascript。 是否可以像这样在 html 中创建表单输入名称:
<input name="name.first">
<input name="name.last">
要在服务器端获取这个 js 对象吗?
req.body = {
name: {
first: "firstname",
last: "lastname"
}
}
实际上,我得到的不是带有孩子“first”和“last”的“name”对象,而是:
'realname.first': 'firstname',
'realname.last': 'lastname',
...
node.js 的问题??
解决方案:
就像 Eero Otsus 所说,我必须设置括号,而不是句号。 例如:
<input name="name[first]">
非常感谢。
【问题讨论】:
-
是的,这是可能的,但您需要
POST和GET方法以及发布它的数据库。 -
您不能让浏览器以该格式提交数据(至少从表单提交中,您可以使用 XMLHttpRequest 随意格式化它)。不过,将其从 the standard data formats 之一转换为非常基本的数据。
-
“node.js 的问题??” — 绝对不是,因为它不包含以这种方式解析表单数据的任何内容。您必须使用库。这就是为什么问题应该包括minimal reproducible example。
-
您需要在客户端将
POST数据格式化为所需格式,或者在服务器端使用中间件来执行相同操作。虽然我想知道name[first]和name[last]将如何工作? PHP 会将其格式化为数组,但我怀疑 node.js 是否会 OTB。
标签: javascript html