gpt4 book ai didi

node.js - 带有数组的多部分/表单数据

转载 作者:搜寻专家 更新时间:2023-10-31 22:55:00 24 4
gpt4 key购买 nike

我有一个简单的表格:

<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>

使用 Controller :

//...
server.post('/test', function(req, res) {
res.json(req.body);
});
//...

这会很好地返回:

{
arr: [
"val1",
"val2",
"val3"
]
}

但是,当我将 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>

服务器现在响应:

{
arr[]: "val3"
}

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

如果您想知道,我还发送了一个文件,这就是为什么我需要 multipart/form-data

最佳答案

可能与body-parser的使用有关(特别是 urlencoded 方法)by default ,仅适用于媒体类型为 application/x-www-form-urlencoded 的请求。

您的主应用程序模块可能有如下几行:

const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded());

我想,您可以只添加以下内容来解析 multipart/form-data 类型的请求:

app.use(bodyParser.urlencoded({
type: 'multipart/form-data'
}));

关于node.js - 带有数组的多部分/表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23674208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com