4

我需要将文件从我的 Electron 应用程序上传到 Web 应用程序(node.js + Express),首先收集元数据以及所选文件(来自 Electron 应用程序中的 HTML 表单)并向Web应用程序。Web 应用程序通过将文件保存到磁盘上的预配置位置以及保存文件的元数据和路径到数据库来处理此请求。参考 SO,我决定使用requestform-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 应用程序中,控制台显示 Server 响应:[IncomingMessage]并且响应状态码为 500。这很混乱,我无法掌握 Github 页面中两个项目的示例。如何发出 POST 请求以实现上述目标?

4

1 回答 1

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')
})
于 2016-11-09T11:04:31.327 回答