我正在嘗試使用API來更新另一臺使用node.js的服務器上的列表。對於我最後一步,我需要發送一個包含csv文件的POST。在API中,它們在FormData下列出,我需要一個名爲File的文件和一個二進制上傳的值,然後請求的主體應該由listname:name和file:FileUpload組成。如何使用node.js請求模塊發送文件?
function addList(token, path, callback) {
//Define FormData and fs
var FormData = require('form-data');
var fs = require('fs');
//Define request headers.
headers = {
'X-Gatekeeper-SessionToken': token,
'Accept': 'application/json',
'Content-Type': 'multipart/form-data'
};
//Build request.
options = {
method: 'POST',
uri: '{URL given by API}',
json: true,
headers: headers
};
//Make http request.
req(
options,
function (error, response, body) {
//Error handling.
if (error) { callback(new Error('Something bad happened')); }
json = JSON.parse(JSON.stringify(response));
callback.call(json);
}
);
//Attempt to create form and send through request
var form = new FormData();
form.append('listname', 'TEST LIST');
form.append('file', fs.createReadStream(path, { encoding: 'binary' }));
form.pipe(req);};
我是一個老前輩的JavaScript的HTML和CSS,但這是我第一次冒險與後端node.js.我一直得到的錯誤是:TypeError: dest.on is not a function
從我可以告訴,這與我使用的方式form.pipe(req)
但我找不到文檔告訴我適當的用法。如果你沒有直接的答案,那麼可以指點一下正確的文檔。
的OP沒有使用一飲而盡所以'fileinclude'中間件甚至沒有進入方程。 – James