Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Expressjs-将表单数组/括号字段解析为实数组_Javascript_Node.js_Express - Fatal编程技术网

Javascript Expressjs-将表单数组/括号字段解析为实数组

Javascript Expressjs-将表单数组/括号字段解析为实数组,javascript,node.js,express,Javascript,Node.js,Express,我想找到一些现有的中间件或一些方便的代码来将带有方括号的表单字段(即“contact[21][name]”)转换为expressjs3的真实数组 大致如下: for(key in req.body){ if(key.isArrayField()) { //add new array field to req.body and delete old string version from req.body ... 我想解析无限深的括号。我还在学习JS/Node,所以我想了解

我想找到一些现有的中间件或一些方便的代码来将带有方括号的表单字段(即“contact[21][name]”)转换为expressjs3的真实数组

大致如下:

for(key in req.body){
    if(key.isArrayField()) {
       //add new array field to req.body and delete old string version from req.body
...
我想解析无限深的括号。我还在学习JS/Node,所以我想了解一些方向


谢谢

你能解释一下你想用这个实现什么吗

根据您首先从web表单获取输入的方式,您可以使用内置于node.js中的JSON.parse()()轻松地将JSON语法解析为真实对象(包括数组)

使用该方法,您可以拥有无限级别的嵌套值(哈希/对象和数组),但首先需要一些客户端脚本将值放在那里(例如)


如果你给出一个更完整的例子,包括提交表单的上下文,我可能会给出更好的方向…

我已经通过使用解决了这个问题-问题是,如果我只是提交一个POST表单来表示,它不会将方括号作为数组处理,因此必须手动对其进行正则化。通过使用插件将表单解析为JSON,我可以通过ajax提交表单。

根据我的经验,您可以简单地执行以下操作

翡翠

input(type="text" name="foo[]" value="foo1")
input(type="text" name="foo[]" value="foo2")
JS

app.post('/test', function(req,res){
    console.log(req.body)// { foo: [ 'foo1', 'foo2' ] }
    console.log(req.body.foo)//["foo1","foo2"]
    console.log(req.body.foo[0])//foo1
    console.log(req.body.foo[1])//foo2
});

我不知道这是否合理,但这就是你对待他们的方式。。。至少在express 3.0+

上解决了这类问题。我将在下面添加我的答案,尽管我仍然想知道一个中间件,它可以从express解析POST表单并处理括号符号。