2012-08-08 49 views
1

Ajax请求的响应我有一个触发一个Ajax请求HTML页面:获得的node.js

$.ajax({ 
       type: 'POST', 
       url: '/usernamecheck', 
       data: {"username":username}, 
       success: function(taken){ 
        if(taken === 0){ 
         $('#error').text('The username' + username + ' is available!') 
        }else{ 
         $('#error').text('The username' + username + ' is not available') 
        } 
       }, 
       dataType: "json" 
      }) 

这是我的Node.js代码:

exports.usernameCheck = function(req,res){ 
var db; 
db = require('./../custom_modules/db.js'); 
var username = req.body.username; 
db.users.find({username:username},function(err,users){ 

    console.log(username) 
    if(users.length === 0){ 
     //return 0 
    }else{ 
     //return1 
    } 
}) 

,我想对此作出回应ajax与node.js的请求,但有点不确定如何做?

+1

那么你必须做的第一件事就是有一个Web服务器撰写,它的post请求响应/ usernamecheck 。你有没有为节点写任何东西?我不认为你的问题具体到足以真正给出一个好的答案。 – travis 2012-08-08 20:49:58

+0

@travis我有,我会更新我的问题 – gilbertbw 2012-08-08 20:54:22

+0

你的AJAX正在做什么只是通过Javascript进行正常的HTTP请求。如果你设置了一个web服务器,你只要响应,如果有人输入的URL到他们的浏览器(尽管与json或其他)。 – jli 2012-08-08 21:02:59

回答

3

jQuery ajax dataType代表您期望从服务器返回的数据。我会把它留作json,只是改变代码的其他部分以适应数据类型。

客户

$.ajax({ 
    type: 'POST', 
    url: '/usernamecheck', 
    data: {"username":username}, 
    success: function(response){ 
    if(response.taken === true){ 
     $('#error').text('The username' + username + ' is available!') 
    }else{ 
     $('#error').text('The username' + username + ' is not available') 
    } 
    }, 
    dataType: "json" 
}) 

节点

db.users.find({username:username},function(err,users){ 
    res.json({taken: users.length !== 0}) 
}) 
+1

虽然他现在提到他使用express:'res.json()'而不是'res.write(JSON.stringify())'。此外,可以做'采取:users.length!== 0'剪出分支。 – jli 2012-08-08 21:22:31

+0

同意,更新答案以反映expressjs – travis 2012-08-08 21:37:36

相关问题