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对象为空。指定列名时,将返回行。有什么想法吗?