2017-03-22 8 views
0

Ich baue eine App zum Speichern von Informationen. Momentan gibt es 3 Eingabefelder (Titel, Beschreibung und Fileinput).PouchDB-Code funktioniert nicht ohne Anhang hinzufügen

Wenn ich alle drei Felder ausfülle und die Funktion addItem() aufruft, funktioniert es. Aber wenn ich das Eingabefeld leer lasse, fügt die Funktion es nicht zur Datenbank hinzu.

Gibt es eine Möglichkeit zu sagen, dass das Dateieingabefeld nicht benötigt wird?

Mein JavaScript-Code:

function addItem() { 

    //get file 
    var inputFile = document.querySelector('#inputFile'); 
    var getFile = inputFile.files[0]; 

    //get info 
    var title = document.getElementById('itemTitle').value; 
    var desc = document.getElementById('itemDesc').value; 

    //add 
    locallp.put({ 
    _id: new Date().toISOString(), 
    title: title, 
    description: desc, 
    _attachments: { 
     "file": { 
      content_type: getFile.type, 
      data: getFile 
     } 
    } 
    }).then(function(){ 
     console.log("Added to the database"); 
     location.href = "menu.html"; 
    }).catch(function(err){ 
     console.log(err); 
    }); 
} 

einige zusätzliche Informationen, ich bin Cordova mit der App zu bauen. Meine Datenbank ist PouchDB und über couchperuser mit einem CouchDB Server verbunden.

Antwort

2

Ich wäre überrascht, dass Ihre zweite Zeile() sogar funktioniert, wenn Sie keine Datei bereitstellen. In jedem Fall bin ich sicher, dass der Methodenaufruf getFile.type fehlschlägt, wenn es keine Datei gibt.

Sie brauchen etwas Logik in dieser Methode, so dass es zwei verschiedene Dinge macht, abhängig davon, ob eine Datei geliefert wird oder nicht. Wenn es einen gibt, dann tut es, was Sie haben, wenn nicht, dann versucht es nicht, die _attachments hinzuzufügen und überspringt wahrscheinlich auch die gesamte Einstellung von getFile.

+0

danke. nur neugierig, ob es eine Option in der Tasche oder etwas gibt. Ich werde versuchen, zwei verschiedene put() - Funktionen zu verwenden. – thomagron

+0

Es hat nichts mit PouchDB zu tun, Code wie 'getFile.type' kann niemals funktionieren, wenn' getFile' 'null' ist. – smathy

Verwandte Themen