ファイルとフィールドを含む FormData をサーバー上のルートに送信していますが、connect-busboy が両方のイベントを発生させるのに問題があります。
クライアント側には次のものがあります。
var data = new FormData();
data.append('file', MyFile);
data.append('key_one', 'value_one');
fetch を使用しているので、fetch オブジェクトの body プロパティにデータを割り当てます。
fetch(url, {
method: 'POST',
body: data
}).then(...){...}.catch(...){...}
サーバーの URL ルート:
で構成されたbusboyミドルウェアを使用します
limits: {fileSize: 5 * 1024 * 1024, parts: 2}
で、〜がある、
req.pipe(req.busboy);
req.busboy.on('field', function(key, value){
console.log('field fired');
}
req.busboy.on('file', function(fieldname, file, filename){
console.log('file fired');
}
私の問題は、「ファイルが解雇される」だけだということです。ファイルリスナーを取り出すと、「フィールドが起動」します。この設定でファイルのみが起動される理由を知っている人はいますか? また、私が現在使用している他のミドルウェアはcookieParser
、expressSession
およびパスポートのみです。