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

时间:2015-07-21 12:00:57

标签: arrays node.js rest post requestjs

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

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

我需要通过cURL发送Post请求,其中包含以下5对象数据结构:

formatoptions.delOptions

任何想法如何在request.js节点http请求库的帮助下编写此请求?

1 个答案:

答案 0 :(得分:2)

尝试以下方法:

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中找到了三个arrayFormat选项(由https://www.npmjs.com/package/request使用):

'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

这是在发布之前序列化数组的三种不同方法。基本上它取决于接收端如何需要/可以格式化。在我的例子中,它有助于使用'括号'