相关疑难解决方法(0)

处理Express表单中的输入数组?

假设我必须在同一页面上编辑一批相同类型的对象:

//-jade
form(action='', method='POST')
    for each message_id in messages_ids
        input(type='text', name='message', id='#{message_id}')
        input(type='text', name='author',  id='#{message_id}')
    input(type='submit', value='Send')
Run Code Online (Sandbox Code Playgroud)

我知道我不能在后端处理这种形式'因为它的原因 - 它不会被发送到后端.但是,有办法吗?我想在后端得到这样的东西:

//js
for (var i = 0; i <= req.body.message.length; i++) {
    console.log (
        'ObjectID: ' + req.body.message[i].id, //-? null, just to show what I'm trying to get
        'Message: '  + req.body.message[i],
        'Author: '   + req.body.author[i]
    );
}
Run Code Online (Sandbox Code Playgroud)

这是伪代码(它不会工作).那么,有什么想法吗?

PS我在没有AJAX的情况下如何做到这一点

forms arrays node.js express

10
推荐指数
1
解决办法
9342
查看次数

具有数组的多部分/表单数据

我有一个简单的形式:

<form method="post" action="/test">
  <input type="hidden" name="arr[]" value="val1">
  <input type="hidden" name="arr[]" value="val2">
  <input type="hidden" name="arr[]" value="val3">
  <input type="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)

使用控制器:

//...
server.post('/test', function(req, res) {
    res.json(req.body);
});
//...
Run Code Online (Sandbox Code Playgroud)

这返回正常:

{
  arr: [
    "val1",
    "val2",
    "val3"
  ]
}
Run Code Online (Sandbox Code Playgroud)

但是,当我将enctype更改为multipart/formdata时

<form method="post" action="/test" enctype="multipart/form-data">
  <input type="hidden" name="arr[]" value="val1">
  <input type="hidden" name="arr[]" value="val2">
  <input type="hidden" name="arr[]" value="val3">
  <input type="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)

服务器现在响应:

{
  arr[]: "val3"
}
Run Code Online (Sandbox Code Playgroud)

有什么问题?我需要某种配置吗?

万一你想知道,我也发送一个文件,为什么我需要multipart/form-data.

node.js express kraken.js

5
推荐指数
1
解决办法
1136
查看次数

标签 统计

express ×2

node.js ×2

arrays ×1

forms ×1

kraken.js ×1