ExpressJS - 在网页上显示AJAX响应

时间:2017-02-24 03:50:01

标签: jquery ajax express

我正在进行用户名可用性。我从js文件中获取用户名,并将AJAX POST调用发送到路由并使用输入的用户名检查数据库。 DB逻辑工作正常。我将以下方式将信息发回给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()尝试了它也没有用

为了清楚起见,这是用户注册文件中的用户名字段(.ejs文件):



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

        </script>
        <%= result %>
&#13;
&#13;
&#13;

任何帮助/协助表示赞赏。感谢

1 个答案:

答案 0 :(得分: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
        }
        
    }
}

 });