发送multipart / form-data的NodeJS Request错误

时间:2015-08-11 12:24:44

标签: node.js express proxy request multipartform-data

我使用Node.js应用作为网络服务的代理。我能够使用body-parser传输简单的application / json请求,但它无法处理multipart / form-data。

为此,我尝试使用request模块,但在将文件附加到请求时出错:

Error: write after end
    at ClientRequest.OutgoingMessage.write (_http_outgoing.js:413:15)
    at Request.write(./node_modules/request/request.js:1362:25)

以下是触发此错误的代码:

var form_data = {};

            for (var key in req.files){
                form_data[req.files[key].fieldname] = fs.createReadStream(req.files[key].path);
                log.debug("File :", req.files[key].fieldname)
            }

            var multipart_request = request_module({
                url: 'http://example.com',
                method: ‘POST’,
                headers: req.headers,
                body: JSON.stringify({<some content here>}),
                formData: form_data
            }, function(error, response, body){

                if(error){
                    log.debug(error);
                    res.status(500).send('{"message": "Server error.}');
                }
                else{
                    res.status(response.statusCode).send(body);
                }

            });

这是另一种解决方案吗?

1 个答案:

答案 0 :(得分:2)

如果您提供formformData,则您的请求选项中也不能包含body