2017-02-24 2 views
0

Ich mache einen Benutzernamen Verfügbarkeit. Ich nehme den Benutzernamen aus einer js-Datei und sende einen AJAX POST-Anruf in eine Route ein und überprüfe die Datenbank mit dem eingegebenen Benutzernamen. Die DB-Logik funktioniert einwandfrei. Ich schicke die Informationen in der folgenden Art und Weise wieder zurück zum AJAX-Aufruf:ExpressJS - AJAX-Antwort auf Webseite anzeigen

if(err){ 
     console.log("Error checking username availability...") 
    } 
    if(doc && doc._id){ 
     console.log(doc.lastname+ " User aleady Exists") 
    } else { 

    res.send({result: "Username Available"}) 
} 

Und das ist die Datei main.js, die den AJAX POST Aufruf hat:

$("input[name='username']").blur(function(){ 
//enteredUsername = $("input[name='username']").val() 

var data={} 
data.enteredUsername = $("input[name='username']").val() 
alert(data.enteredUsername) 
$.ajax({ 
    type: "POST", 
    url: '/checkUsername', 
    data: data, 
    dataType: 'application/json', 
    success: function(result){ 
     render(result); 
    } 
} 

// }).done(function (result) { 
//  alert("ajax callback response:"+JSON.stringify(result)); 
// }) 

}); 

Ich versuchte es auf verschiedene Weise tun 1) ich versuchte, eine success Funktion in AJAX, die nicht 2) arbeitet ich habe versucht, es .done() verwendet, die auch nicht

aus Gründen der Klarheit arbeitete, das ist mein usernam E-Feld in Benutzerregistrierung Datei (eine .ejs-Datei):

<input type="text" name="username" required="required" minlength="6"> 
 
     <script src="scripts/main.js"> 
 

 
     </script> 
 
     <%= result %>

Jede Hilfe/Unterstützung geschätzt. Dank

Antwort

0

Express

// Magic 
 
... 
 
if(err){ 
 
     res.end(JSON.stringify({ 
 
      error: true 
 
      ,message: 'Error checking username availability...' 
 
     })) 
 
    } 
 
    if(doc && doc._id){ 
 
     console.log(doc.lastname+ " User aleady Exists") 
 
    } else { 
 

 
    res.end({ 
 
     error: false 
 
     ,result: "Username Available" 
 
    }) 
 
}

Frontend

// AJAX Maigc 
 
... 
 

 
$.ajax({ 
 
    type: "POST", 
 
    url: '/checkUsername', 
 
    data: data, 
 
    dataType: 'application/json', 
 
    success: function(result){ 
 
     
 
     if(result.error === false){ 
 
      // Success 
 
      render(result); 
 
     }else{ 
 
      const errorMessage = result.message; 
 
      // Work your way 
 
     } 
 
     
 
    } 
 
} 
 

 
});

+0

'JSON.stringify' der letzte' res.end() 'auch rechts. ..?. Ich reparierte diesen Teil und lief, es zeigt nicht die verfügbare Mitteilung des Benutzernamens auf der Seite an .... wie beantwortet diese meine Frage? – CoderSenju

Verwandte Themen