在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
- datastax Node.js驱动程序中的“无法为条件更新提供自定义时间戳”
- 使用具有规模的nodejsstream式传输cassandra数据
- Cassandra客户端不会插入
- 使用nodejs脚本将GB的数据从MongoDB迁移到Cassandra的最佳方法
- 使用IN查询使用nodejs'cassandra-driver'准备好的查询
- 如何在Cassandra中使用cqlsh在map <text,boolean>字段中插入自定义types?
- 无法连接到scassandra(残桩cassandra)使用datastax驱动程序
- 如何将cassandra数据库查询结果读取到节点js中的UI中
- 使用cassandra和elasticsearch后端制作我的titan db图