Parse.com查询用户数据不起作用

时间:2015-02-22 15:53:23

标签: parse-platform

现在当有人调用twilio号时,执行Parse Cloud Code中的/ hello函数。在/ hello函数中,我可以通过request.param('From')查找谁在进行调用。有了这些信息,我想查询该用户,然后获取Receiver的电话号码,该电话号码位于用户表的“接收者”列中。

    app.get('/hello', function(request, response) {
    var twiml = new twilio.TwimlResponse('');

// querying the caller
    Parse.Cloud.useMasterKey();
    var query = new Parse.Query(Parse.User);
    query.equalTo("username", request.param('From')); // querying the caller
        query.find( {
                success: function(result) {    
                   twiml.dial({callerId:'+4XXXXXX7'}, result[0].get("Receiver"));  // dialing the receiver
                   console.log("user is " +result[0]);
                   response.success("user is found");
                    },
                error: function (error) {
                        response.error("failed finding the user");
                    }
    });
    response.type('text/xml');
    response.send(twiml.toString(''));
    });
    app.listen();

查询不起作用,并且不会打印query.find中的日志。我尝试使用query.first而不是query.find,但这也没有用。

2 个答案:

答案 0 :(得分:1)

request.params是路由参数。为了使代码传递From参数(更恰当地命名为from),路由必须定义如下...

app.get('/hello/:from', function(request, response)

调用者应该获得/ hello / someusername。要在函数中使用from参数...

query.equalTo("username", request.params.from);
// notice the plural: "params"

一个小组织建议:排除代码中的其他问题(以及改进SO问题),开始给这个代码一个工作:用传递的用户名检索用户:

app.get('/hello/:from', function(request, response) {
    // so we can test getting a user, just get a user
    Parse.Cloud.useMasterKey();
    var query = new Parse.Query(Parse.User);
    query.equalTo("username", request.params.from);
    query.find({
        success: function(result) {
            response.success(result);
        },
        error: function (error) {
            response.error(error);
        }
    });
});

当你开始工作时,将Twillio的东西放在你从成功块中调用的函数中。这将允许您一步一步地调试代码(并提出有针对性的SO问题)。

答案 1 :(得分:0)

如果有人需要,以下代码可以使用。

 app.get('/hello', function(request, response) {
    var twiml = new twilio.TwimlResponse('');

// querying the caller
    Parse.Cloud.useMasterKey();
    var query = new Parse.Query(Parse.User);
    query.equalTo("username", request.param('From')); // querying the caller
        query.find( {
                success: function(result) {    
                   twiml.dial({callerId:'+4XXXXXX7'}, result[0].get("Receiver"));  // dialing the receiver
                   console.log("user is " +result[0]);
                   response.success("user is found");
                   response.type('text/xml');
                   response.send(twiml.toString(''));
                    },
                error: function (error) {
                        response.error("failed finding the user");
                    }
    });
    });
    app.listen();