2017-02-24 83 views
0

我正在做用戶名可用性。我從一個js文件中獲取用戶名,並通過AJAX POST調用發送到路由中,並使用輸入的用戶名檢查數據庫。數據庫邏輯工作正常。我送回來以下列方式將信息傳回AJAX調用:ExpressJS - 顯示網頁上的AJAX響應

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

這是一個具有AJAX POST調用文件main.js

$("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)); 
// }) 

}); 

我嘗試了不同的方式做 1)我試着在AJAX一個success功能,這是不工作 2)我嘗試了用.done()這也是出於清楚的緣故工作

,這是我的usernam在用戶註冊文件E場(一.ejs文件):

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

 
     </script> 
 
     <%= result %>

任何幫助/協助理解。由於

回答

0

快遞

// 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" 
 
    }) 
 
}

前端

// 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'最後'res.end()'也是正確的。 ..?。我修復了這個部分並跑了起來,它沒有在頁面上顯示用戶名可用的消息....這是如何回答我的問題的?... – CoderSenju