Node.js cassandra驱动程序节点JS上的查询问题

Node.js cassandra驱动程序节点JS上的查询问题,node.js,cassandra,Node.js,Cassandra,我正在为卡桑德拉设置一个连接器。当我试图查询数据库时,它不会返回任何信息。下面是片段 function CassandraConnector(host, hostPort, user, password) { if (!host || !hostPort) { logger.fatal("CassandraConnector cannot initialize without host and port configuration."); throw ne

我正在为卡桑德拉设置一个连接器。当我试图查询数据库时,它不会返回任何信息。下面是片段

function CassandraConnector(host, hostPort, user, password) {
    if (!host || !hostPort) {
        logger.fatal("CassandraConnector cannot initialize without host and port configuration.");
        throw new Error("CassandraConnector unable to start");
    }
    this._dbHost = host;
    this._dbPort = hostPort;
    this._user = user;
    this._password = password;

    var authProvider = new cassandra.auth.PlainTextAuthProvider(this._user, this._password);
    client = new cassandra.Client({
            contactPoints: [this._dbHost],
            authProvider: authProvider,
            protocolOptions: {
                port: this._dbPort
            },
            keyspace: "test"       
    });
client.connect(function(err, result) {
    if (err) {
        console.log("Error while connecting to cassandra " + err)
    }
});
client.on('log', function(level, className, message, furtherInfo) {
  console.log('Cassandra log event: %s -- %s', level, message);
})
}


CassandraConnector.prototype.getAllUserPreferences = function(user_type, userId) {
    var query = "SELECT * from test.user where user_type=? AND user_id=?";
    var params = [user_type, userId];
    var deferred = Q.defer();
    client.execute(query, params, {
        prepare: true
    }, function(err, result) {
        if (err) {
            deferred.reject(err);
            throw new Error("Unable to retrieve the user preferences for user id " + userId);
        } else {
            deferred.resolve(result)
        }
    });
    return deferred.promise;
}

我在deferred.reject和deferred.resolve上设置了一个断点,但它根本没有命中。请提供帮助。

简化您的代码,直到您能够确定问题出在哪里…,从开始,然后从那里开始。谢谢@jorgebg。我会试一试的。非常感谢。我让它工作了。我有一个问题。当我从user中选择user_id时,我会返回结果,但当我从user中选择*时,我不会返回任何行。我是否总是需要指定列名?您可以执行
SELECT*
,您不必指定列名,您应该会得到不同的结果,因为原因不同。我尝试执行var query='SELECT*FROM user WHERE user_type=?用户_id=?'并传入参数,但result.rows未定义。err对象为空。指定列名时,将返回行。有什么想法吗?