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

在Rails中,如果你有一个带有下划线的表单,它将在params中假设一个嵌套的布局结构:
<input type="text" name="person_first" />
<input type="text" name="person_last" />

在服务器上,你会得到:

params #=> { person: { first: "Tom",last: "Hanks" } }

当我在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]" />

要么

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

快递4的更新

这里的关键是设置扩展:true

app.use(bodyParser.urlencoded({
  extended: true
}));

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些