2017-07-06 1 views
0

Ich lerne das Hochladen von Dateien mit Node.js und multer. Ich habe Haupt app.js Datei sowie upload.html.fetch() mit FormData

Meine Form:

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

und script.js, mit denen ich versuche, Formulardaten zu handhaben und es mit holen Posting():

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

Dateien hochladen, und alles ist in Ordnung, außer zwei Fehler. Erste Anzeigen an Browser-Konsole:

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

Und zweitens in WebStorm IDE-Konsole:

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

Haben Sie eine Ahnung, warum es mit Fehlern ist zu werfen, während alles gut funktioniert?

Antwort

1

Es ist wie das Problem aussieht, ist mit .then(res => res.json(), error => error.message);

Der JSON Parsing-Fehler fast sicher ist, weil Sie nicht JSON zurück in Ihrer Antwort zu bekommen. Es ist schwer zu sagen, warum genau Sie die Verwarnungswarnung erhalten, aber es könnte mit Ihrem Anruf zusammenhängen. Für beide, machen Sie etwas Nützliches mit dem Ergebnis, wie console.log(res) und console.log(error).

+0

Haben Sie eine Idee, wie Sie mit diesem JSON-Parsing-Fehler umgehen, wie Sie ihn umgehen? Die unglückliche Protokollierungsantwort und der Fehler haben das Problem mit der Verwarnungswarnung nicht gelöst. – veritimus

+0

Wenn es nicht JSON ist, können Sie 'json()' nicht verwenden. Wenn es eine Erfolgsmeldung ist, müssen Sie wahrscheinlich überhaupt nichts damit anfangen. –

+0

ich sende mit form-datendateien hochgeladen, was schlägst du dann statt json() vor? :) – veritimus