node.jsを使用して別のサーバーのリストを更新するAPIを使用しようとしています。最後のステップとして、csvファイルを含むPOSTを送信する必要があります。 APIではFormDataの下にfileという名前のKeyとBinary Uploadの値が必要であるとリストされていれば、要求の本文は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)
ですが、適切な使い方を伝えるドキュメントが見つかりません。直接回答がない場合は、適切な文書を指す指が高く評価されます。
。 – James