4

Electron アプリから Web アプリケーション (node.js + Express) にファイルをアップロードする必要があります。まず、選択したファイルと共に (Electron アプリの HTML フォームから) メタデータを収集し、POST 要求をウェブアプリケーション。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 Responded with:[IncomingMessage]と表示され、応答ステータス コードは 500 です。これは非常に紛らわしく、2 つのプロジェクトの 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 に答える