POST 通过 requestJS 请求发送 JSON 个对象和图像文件的数组

POST request via requestJS to send Array of JSON Objects and image files

我正在使用 NODEjs 构建 REST API,使用 Express 路由器和 Multer 中间件来处理多个正文数据和文件。

我的端点路由 127.0.0.1/api/postData 期望:json 带有字段的数据,其中之一是 json 对象的数组(我有嵌套的猫鼬模式)和2 张命名图像 (png/jpg)。

我需要使用以下 5 对象数据结构通过 cURL 发送 Post 请求:

name  String
description String
usersArray  Array of json objects like:   [{"id": "123"}, {"id": "456}]
imgIcon  Png/Image    providing  /path/to/imageIcon.png
imgHeader Png/Image     providing /path/to/imageHeader.png

知道如何借助 request.js 节点 http 请求库编写此请求吗?

尝试以下操作:

request.post({
    url:'http://127.0.0.1:7777/api/postData'
    , formData: formData
    , qsStringifyOptions : {
        arrayFormat : 'brackets' // [indices(default)|brackets|repeat]
    }
}, function (err, httpResponse, body) {
 // do something...
}

我在 https://www.npmjs.com/package/qs (used by https://www.npmjs.com/package/request 中找到了 arrayFormat 的三个选项):

'indices' sends in postbody: (this is the default case)
usersArray%5B0%5D%5Bid%5D=a667cc8f&usersArray%5B1%5D%5Bid%5D=7c7960fb
decoded:
usersArray[0][id]=a667cc8f&usersArray[1][id]=7c7960fb

'brackets' sends in postbody:
usersArray%5B%5D%5Bid%5D=a667cc8f&usersArray%5B%5D%5Bid%5D=7c7960fb
decoded:
usersArray[][id]=a667cc8f&usersArray[][id]=7c7960fb

'repeat' sends in postbody:
usersArray%5Bid%5D=a667cc8f&usersArray%5Bid%5D=7c7960fb
decoded:
usersArray[id]=a667cc8f&usersArray[id]=7c7960fb

这是在发布前序列化数组的三种不同方式。基本上这取决于接收端如何格式化这些 need/can 。就我而言,它有助于使用 'brackets'