我需要将我的Electron应用程序中的文件上传到Web应用程序(node.js + Express),首先收集元数据和所选文件(来自Electron应用程序中的HTML表单)并发出POST请求Web应用程序。 Web应用程序通过将文件保存到磁盘上的预配置位置以及元数据和保存文件到数据库的路径来处理此请求。参考SO,我决定使用request和form-data使用表单数据组合请求并发出POST请求,使用如下代码:
var fs = require('fs');
var request = require('request');
var FormData = require('form-data');
let formData = {
'name': imageName,
'mediaType': mediaType,
'extension': extension,
'resolution.x': resolutionX,
'resolution.y': resolutionY,
'url': url,
'file': fs.createReadStream(absFilePath)
};
request.post({
url: 'http://localhost:8080/images',
formData: formData
}, function(err, response, body) {
if (err) {
return console.error('upload failed:', err);
}
console.log('Server responded with:', response);
});
在Electron应用程序中,控制台显示服务器响应:[IncomingMessage]
,响应状态代码为500.这非常令人困惑,我无法掌握两个项目的Github页面中的示例。如何发出POST请求以实现上述目标?
答案 0 :(得分:0)
npm install -S request eyespect
var inspect = require('eyespect').inspector();
var request = require('request')
var postData = {
name: 'test',
value: 'test'
}
var url = 'https://www.example.com'
var options = {
method: 'post',
body: postData,
json: true,
url: url
}
request(options, function (err, res, body) {
if (err) {
inspect(err, 'error posting json')
return
}
var headers = res.headers
var statusCode = res.statusCode
inspect(headers, 'headers')
inspect(statusCode, 'statusCode')
inspect(body, 'body')
})