如何将Node.js与Cassandra连接?

我一直试图将Node.js与本地主机上的Cassandra连接50年(感觉就像这样),但还没有弄清楚它们是如何一起工作的。 我将不胜感激任何可能导致解决scheme的build议。

项目目录:

project - app - some files \- build - index.js, index.html, etc.(I start the server by "node index.js") \- node_modules - some modules \- signup - some files to be minified \- signin - some files to be minified \- apache-cassandra-3.0.6 - bin, conf, etc.(downloaded from tarball) \- package.json \- webpack.config.js 

Webpack工作没有任何问题,所以webpackconfiguration中不存在这个问题。
我可以使用cqlsh插入数​​据,所以问题不在于数据结构的模型。

我相信问题是我缺乏关于如何使用Node.js和Cassandra的知识。

我的过程连接Node.js与Cassandra:

  1. 去build立目录
  2. node index.js
  3. 打开本地主机:3000并find主页,由express.js路由,显示没有问题。
  4. 去注册页面并提交表格
  5. 错误(没有数据插入)

我不确定哪个接触点是正确的,“127.0.0.1:9042”或“127.0.0.1”

 var client = new cassandra.Client({contactPoints:['127.0.0.1:9042']}); OR var client = new cassandra.Client({contactPoints:['127.0.0.1']}); 

我这样设置我的路由器。

 var router = express.Router(); var insertUser = 'INSERT INTO keyspace.users (username, create_time, email, password) VALUES (?, ?, ?, ?);'; router.get"/", function(req, res) { res.sendFile(__dirname + '/index.html'); // This is working. }); router.post("/signup", function(req, res) { var username = req.body.username; var email = req.body.email; var password = req.body.password; client.execute(insertUser, [username, now(), email, password], { prepare: true }, function(err) { if (err) { console.log("error"); // I receive error. } else { console.log("success"); } }); }); 

我应该如何保持cassandra在这样的背景下运行?

cd apache-cassandra-3.0.6 – > cd bin – > ./cassandra

我在这里错过了什么?

根据您提供的错误消息,您看起来像在您的Cassandra实例上设置了PasswordAuthenticator身份validation或其他身份validation器。 检查您的cassandra.yaml文件中的“authenticator”属性,它是否设置为PasswordAuthenticatorAllowAllAuthenticator或其他?

如果使用PasswordAuthenticator ,则可以通过将PlainTextAuthenticator实例作为authProvider传递给客户端选项来指定凭据:

 var PlainTextAuthProvider = cassandra.auth.PlainTextAuthProvider; var client = new cassandra.Client({ contactPoints:['127.0.0.1:9042'], authProvider: new PlainTextAuthProvider('cassandra', 'cassandra')}; 

使用身份validation时可用的默认用户是“cassandra”,密码为“cassandra”,但您可以通过以下configuration身份validation来更改此设置 。