2017-07-06 20 views
0

Node.jsとmulterを使用してファイルをアップロードしています。私はメインのapp.jsファイルとupload.htmlを構成しました。FormDataを使用したfetch()

マイ形式:

<form id="uploadForm" action="/uploads" enctype="multipart/form-data" method="post"> 
    <input id="upload-input" type="file" name="uploads" multiple> 
    <button class="upload-button" type="button">File</button> 
</form> 

とscript.jsがどの私は、フォームデータを処理しようとすると)(フェッチとそれを掲示していて:

uploadInput.addEventListener('change', function() { 
    let files = event.target.files; 

    if(files.length > 0) { 
     let formData = new FormData(); 

     for(let i = 0; i < files.length; i++) { 
      let file = files[i]; 

      formData.append('uploads', file); 
     } 

     fetch('uploads', { 
      method: 'POST', 
      body: formData 
     }) 
     .then(res => res.json(), error => error.message); 
    } 
}); 

ファイルがアップロードされ、すべてを除いて結構です2つのエラー。ブラウザのコンソールで まず表示されます。WebStorm IDEコンソールで

uploader:1 Uncaught (in promise) SyntaxError: Unexpected token s in JSON at position 0 

そして第二:すべてが正常に動作している間

(node:51729) [DEP0013] DeprecationWarning: Calling an asynchronous function without callback is deprecated. 

あなたは、それがエラーで投げている理由のアイデアを持っていますか?

答えて

1

問題は、あなたが戻ってあなたの応答でのJSONを取得していないので、JSONの構文解析エラーがほぼ確実である.then(res => res.json(), error => error.message);

であるように見えます。非推奨の警告が表示される理由を正確に伝えるのは難しいですが、.then()の呼び出しに関連する可能性があります。どちらの場合も、console.log(res)console.log(error)など、結果に役立つ何かを行います。

+0

このJSON解析エラーをどのように処理するか、どのように省略するのか考えていますか?不運なロギングの応答とエラーは、非推奨警告の問題を解決しませんでした。 – veritimus

+0

JSONでない場合は、 'json()'を使うことはできません。それが成功のメッセージであれば、おそらく何もする必要はありません。 –

+0

フォームデータファイルをアップロードして送信していますが、json()の代わりに何を提案しますか? :) – veritimus

関連する問題