Node JS / Express:如何解析外部API调用的多部分响应

时间:2016-11-03 13:50:48

标签: node.js http express request multipart

我使用npm Request模块进行了外部API调用,该模块返回一个多部分表单数据。

以下是请求的代码段(不完整):

request.get(options, function (err, httpResponse, body) {
    if (err) {
        return console.error('Error:', err);
    }
    console.log(body);
});

以下是响应正文的示例(上面记录的控制台):

--multipartBoundary
Content-Disposition: form-data; name="file"; filename="loremipsum.sample"
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64

TG9yZW0gSXBzdW0gaXMgc2ltcGx5IGR1bW15IHRleHQgb2YgdGhlIHByaW50aW5nIGFuZCB0eXBlc2V0dGluZyBpbmR1c3RyeS4gTG9yZW0gSXBzdW0gaGFzIGJlZW4gdGhlIGluZHVzdHJ5J3Mgc3RhbmRhcmQgZHVtbXkgdGV4dCBldmVyIHNpbmNlIHRoZSAxNTAwcywgd2hlbiBhbiB1bmtub3duIHByaW50ZXIgdG9vayBhIGdhbGxleSBvZiB0eXBlIGFuZCBzY3JhbWJsZWQgaXQgdG8gbWFrZSBhIHR5cGUgc3BlY2ltZW4gYm9vay4gSXQgaGFzIHN1cnZpdmVkIG5vdCBvbmx5IGZpdmUgY2VudHVyaWVzLCBidXQgYWxzbyB0aGUgbGVhcCBpbnRvIGVsZWN0cm9uaWMgdHlwZXNldHRpbmcsIHJlbWFpbmluZyBlc3NlbnRpYWxseSB1bmNoYW5nZWQuIEl0IHc=

--multipartBoundary
Content-Disposition: form-data; name="json_detail"
Content-Type: application/json;charset=utf-8

{
    "filename":"1478162481102.sdoc",
    "date_modified":"1478170365000",
}
--multipartBoundary--

我的问题是:

  1. 此响应是以流/文本表示的MultipartForm数据是否正确?

  2. 如何以返回文件对象的方式解析响应(本例中为两个文件)?

  3. 我认为我不能使用中间件,因为这是一个外部API调用。 我尝试了以下内容:

    • 管道到文件(这只是将响应传送到文件中)
    • Http.get和busboy

    我的最后一个选择似乎是使用Regex解析响应并写入文件。这似乎很慢,但

    任何输入都将不胜感激!谢谢!

0 个答案:

没有答案