【发布时间】:2019-05-04 10:19:52
【问题描述】:
我正在尝试将我的 nodejs 服务器的请求发布到另一台服务器,然后我必须将响应保存在一个文件中。我正在使用 nodejs https.request 模块。
这是我的要求:
var formData = new FormData();
formData.append('first',3);
formData.append('second', '25');
formData.append('source_file', fs.createReadStream(sourcefile));
formData.append('source_image', fs.createReadStream(sourceimage));
var options = {
hostname: 'ip',
path: '/api/path',
method: 'POST'
}
var file = fs.createWriteStream("file.pdf");
var req = https.request(options, (response) => {
response.pipe(file);
console.log("File saved");
response.send("done")
});
req.on('error', (e) => {
console.error(e);
});
req.write(formData);
req.end();
但我得到了错误
First argument must be a string or Buffer
我尝试使用formData.toString() 发送我的文件,但使用它时,错误消失了,但我的文件无法正常工作,而且我已经发送了这样的数据:
var formData = new FormData();
formData = {
first: 3,
second: '25',
source_file: fs.createReadStream(sourcefile),
source_image: fs.createReadStream(sourceimage)
};
如何使用此请求将我的文件发送到其他服务器。
谢谢
【问题讨论】:
-
您没有设置请求标头。
-
试过这个标题:{ 'Content-Type': 'multipart/formdata' } 不起作用。我必须用 toString() 发送它吗?
-
你能添加你使用哪个模块来提供
FormData吗?
标签: javascript node.js https