我有一个表单数据,我使用循环来生成输入类型的文本字段。
所以在循环的帮助下,当我通过检查元素打开表单数据时,我得到了这样的东西。
< input type="text" name="position1" />
< input type="text" name="position2" />
< input type="text" name="position3" />
< input type="text" name="position4" />
当我提交表单时,在Node.js上,当我通过request.body获取请求时,我得到了这样的东西。
{
position1: '1',
position2: '2',
position3: '3',
position4: '4'
}
我看到的是这样的
[
{position1: '1'},
{position2: '2'},
{position3: '3'},
{position4: '4'},
]
所以我用map函数在mongodb上逐个更新,或者用bulkwrite函数一次性更新。
我试着在name=""的值前加上[]。像这样name="[]position1",但没有成功。
有没有人可以指导我一下。
如果你想拥有一个collectionarray,你可以生成如下的表单。
<input type="text" name="positions[]" />
<input type="text" name="positions[]" />
<input type="text" name="positions[]" />
<input type="text" name="positions[]" />
在node jsserver端,你可以期待你的数据在: req.body.positions
这样
[
1,
2,
3,
4
]
如果您想保留名称末尾的后缀或数字,您可以考虑转换您的数据,如
var transformedPositions = req.body.positions.map(function(positionValue,index){
var newKeyName = "position"+(index+1);
return {newKeyName:positionValue}
})
这样你就会得到以下信息 transformedPositions
[
{position1: '1'},
{position2: '2'},
{position3: '3'},
{position4: '4'},
]