2016-06-14 17 views
0

Ich habe zwei Knoten-Server. Man versucht Dateien zu lesen und die anderen senden Dateien. Mein Server eingerichtet ist, wieWarum kann ich keine Dateien in meiner Postanforderung mehr sehen?

.post(upload.array('test'), function (req, res) { 

    if (!Array.isArray(req.files)) { 
    res.status(400).json({success: false, err: 'Must have test(s))'}); 
    return; 
    } 

    var files = req.files; <-- This is always null 

Mein Kunde sieht aus wie

var http = require('request-promise'); 
    var request = require('request'); 
    var fs = require('fs'); 
    var FormData = require('form-data'); 

    var form = new FormData(); 

    tests.forEach(function(testName){ 
    form.append('test', fs.createReadStream(__dirname+'/tests/'+testName)); 
    }); 

    var options = { 
     method: 'POST', 
     uri: 'https://' + name +'/rest/api', 
     rejectUnauthorized: false, 
     timeout: 2000, 
     form: form, 
    }; 

    return http(options); 

jedoch der Server nie in der Lage ist, die Dateien zu finden. Die Antwort sagt immer irr: Muss Test (s) haben.

Kann mir jemand helfen herauszufinden, was ich bei meinem Kunden falsch mache?

Antwort

1

Die Option form ist für urlencodierte Formulare. Bei mehrteiligen Formularen sollten Sie stattdessen die Option formData festlegen. Außerdem müssen Sie das Modul form-data nicht explizit verwenden. Beispiel:

var requestPromise = require('request-promise'); 
var fs = require('fs'); 

var formTests = new Array(tests.length); 
for (var i = 0; i < tests.length; ++i) 
    formTests[i] = fs.createReadStream(__dirname + '/tests/' + tests[i]); 

var options = { 
    method: 'POST', 
    uri: 'https://' + name +'/rest/api', 
    rejectUnauthorized: false, 
    timeout: 2000, 
    formData: { 
    tests: formTests 
    } 
}; 

return requestPromise(options); 
+0

Danke, dass Sie mich auf den richtigen Weg gebracht haben! Weißt du warum, wenn ich das Formular in formData umschalte (wie du es hast) bekomme ich eine [TypeError: Kann die Eigenschaft 'hasOwnProperty' von undefined] Ausnahme nicht lesen? – nbroeking

+0

Erhalten Sie denselben Fehler, wenn Sie das Modul 'request' direkt verwenden? Welche Versionen von 'request' /' request-promise' sind installiert? – mscdex

Verwandte Themen