2017-02-24 54 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