var cql = require('node-cassandra-cql');
var client = new cql.Client({hosts: ['*.*.*.*'], keyspace: '*',
username:'*', password: '*'});
console.log('connected to ' , client);
console.log('Querying....');
client.execute('select * from example where field1=?', [1],
function(err, result) {
console.log('inside', result);
if (err)
console.log('execute failed',err);
else
console.log('got chat ' + result.rows[0].field1);
client.shutdown();
}
);
我正在使用此代码,不会调用execute()回调函数。为了测试我使用了不正确的IP地址,它立即响应并且此行console.log('执行失败',错误)记录下面的内容。
execute failed { [PoolConnectionError]
name: 'PoolConnectionError',
info: 'Represents a error while trying to connect the pool, all the connections failed.',
individualErrors:
[ { Error: getaddrinfo ENOTFOUND
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:79:26)
code: 'ENOTFOUND',
errno: 'ENOTFOUND',
syscall: 'getaddrinfo',
hostname: '*.*.*.*'
host: '*.*.*.*'
port: 9042 } ] }
如果使用正确的IP地址,可能没有任何反应可能因为新的cql.Client内部调用连接(异步)甚至连接之前是否尝试执行?所有这些都完美适用于CQLSH,我的服务器位于AWS美国西海岸。
欢迎任何投入。
答案 0 :(得分:2)
您正在使用旧版Cassandra驱动程序node-cassandra-cql
,而project readme states已不再维护:
node-cassandra-cql已经从社区驱动程序毕业到了 官方Datastax Node.js Driver for Apache Cassandra的基础。
此存储库中将不再有开发。我鼓励 每个人都可以尽快开始迁移到新的驱动程序,这是 有一些很棒的新功能,你应该尝试,以及一个 为预准备语句改进了cql到javascript类型的映射。
npm install cassandra-driver --save