在Windows虚拟机上连接Node.js和Cassandra时出错

我在将Node.js连接到Cassandra时遇到问题。 我得到的错误如下:

Error: All host(s) tried for query failed. First host tried, 127.0.0.1:9042: Error socket was closed. See innerErrors. 

我不确定innerErrors是什么意思,是某种types的日志? 我是Cassandra和Node.js的新手,所以我不确定发生了什么事情。 我为端口9042和9160创build了一个入站规则,这些端口是Cassandra使用的端口。 我没有通过CQLSH和DevCenter连接的问题。 我不知道使用虚拟机是否会造成这种情况。

这是我用来testing这个,我创build的一些表上的node.js代码:

 var cassandra = require('cassandra-driver'); var client = new cassandra.Client({contactPoints: ['127.0.0.1'], keyspace: 'space'}); var query = "SELECT * FROM space_table"; client.execute(query, function(err, results) { assert.ifError(err); console.log(result.rows[0].pk); }); 

以下是我正在使用的:

具有Virtual Box的Windows 7 VM,DataStax社区2.1.9和Node.js以及Node.js的DataStax驱动程序

在Cassandra v2.2.0的Node.js驱动程序上有一个错误,这个错误在最新版本上已经修复。

通过npm更新应该解决这个问题。


原始答案

它看起来像cassandra驱动程序2.2.0 ( 这里修复 )中的一个错误,这是在Windows上对Cassandra 2.1或更低版本造成这个问题。

使用驱动程序版本2.1.2,直到修复被合并:

 $ npm install cassandra-driver@2.1.2 --save