首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过requestJS发送请求发送数组的JSON对象和图像文件

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

Stack Overflow用户
提问于 2015-07-21 12:00:56
回答 1查看 3.3K关注 0票数 2

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

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

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

代码语言:javascript
复制
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请求库的帮助下编写此请求吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-07 14:53:22

尝试以下几点:

代码语言:javascript
复制
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中找到了三个https://www.npmjs.com/package/qs选项(由https://www.npmjs.com/package/request使用):

代码语言:javascript
复制
'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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31538478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档