2016-06-28 2 views
3

Je dois télécharger un fichier de mon application Electron vers une application Web (node.js + Express), en commençant par rassembler les métadonnées avec le fichier sélectionné (à partir d'un fichier HTML formulaire dans l'application Electron) et émettre une requête POST à ​​l'application web. L'application Web traite cette demande en enregistrant le fichier dans un emplacement préconfiguré sur le disque et les métadonnées ainsi que le chemin du fichier enregistré dans une base de données. Se référant à, je décidé d'utiliser request et form-data pour composer la demande avec les données de formulaire et d'émettre une requête POST, en utilisant le code qui ressemble à ceci:Emettre une demande POST en plusieurs parties depuis l'application Electron pour télécharger un fichier

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); 
    }); 

Dans l'application électronique, la console affiche serveur a répondu avec: [IncomingMessage] et le code d'état de réponse est 500. Il est assez déroutant et je suis incapable de saisir les exemples dans les pages Github pour les deux projets. Comment envoyer une demande POST pour atteindre les objectifs décrits ci-dessus?

Répondre

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') 
})