Forms 如何在express.js中获取嵌套表单数据?

Forms 如何在express.js中获取嵌套表单数据?,forms,node.js,express,Forms,Node.js,Express,在Rails中,如果您有一个带下划线的表单,它将采用参数中的嵌套布局结构: <input type="text" name="person_first" /> <input type="text" name="person_last" /> 当我在node.js中使用Express.js时,bodyparser似乎没有做同样的事情。查看bodyparser的代码,它只是在其上运行JSON解析器,结果是: params #=> { person_first: "To

在Rails中,如果您有一个带下划线的表单,它将采用参数中的嵌套布局结构:

<input type="text" name="person_first" />
<input type="text" name="person_last" />
当我在node.js中使用Express.js时,bodyparser似乎没有做同样的事情。查看bodyparser的代码,它只是在其上运行JSON解析器,结果是:

params #=> { person_first: "Tom", person_last: "Hanks" } }

当我使用Express时,有没有什么方法可以像Rails那样获取嵌套表单数据?是否有一个库允许我执行此操作?

如果您使用的是
express.bodyParser
,则可以使用数组表示法传递嵌套数据

在控制器之前添加
express.bodyParser
中间件

app.use(express.bodyParser());
现在,您可以在html代码中使用此符号:

<input type="text" name="person[first]" />
<input type="text" name="person[last]" />

我们能给person.first或person.name.first加上点符号吗。或者有一个解析器可以这样做吗?我们在Koa2中也有这样的嵌套属性吗?
<input type="text" name="person[first]" />
<input type="text" name="person[last]" />
<input type="text" name="person[name][first]" />
<input type="text" name="person[name][last]" />
app.use(bodyParser.urlencoded({
  extended: true
}));