2016-06-14 64 views
0

我有兩個節點服務器。一個是試圖讀取文件和其他發送文件。然而,服務器是從來沒有能夠找到這些文件我的服務器的設置類似於爲什麼不能在我的帖子請求中看到任何文件?

.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 

我的客戶看起來像

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

。答覆總是說錯誤:必須有測試。

任何人都可以幫助我找出我的客戶在做什麼錯嗎?

回答

1

form選項適用於urlencoded表單。對於多部分表單,您需要改爲設置formData選項。此外,您不需要明確使用form-data模塊。例如:

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

謝謝你讓我走上正軌!你知道爲什麼當我將表單切換到formData(就像你有它),我得到一個[TypeError:無法讀取屬性'hasOwnProperty'的undefined]異常? – nbroeking

+0

您是否直接使用'request'模塊獲得相同的錯誤?安裝了什麼'request' /'request-promise'版本? – mscdex

相關問題