[英]How to connect Node.js with Cassandra?
50年来,我一直试图将Node.js与Cassandra连接到localhost,但是还没有弄清楚它们是如何协同工作的。 我将不胜感激任何可能导致解决方案的建议。
项目目录:
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运行正常,没有任何问题,因此Webpack配置中不存在该问题。
我可以使用cqlsh插入数据,所以问题不在于数据结构模型。
我认为问题在于我缺乏有关如何一起使用Node.js和Cassandra的知识。
我将Node.js与Cassandra连接的过程:
node index.js
我不确定哪个联系点是正确的“ 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");
}
});
});
我应该让卡桑德拉这样在后台运行吗?
cd apache-cassandra-3.0.6
./cassandra
> cd bin
./cassandra
> ./cassandra
我在这里想念什么?
根据您提供的错误消息,您似乎在Cassandra实例上设置了PasswordAuthenticator
身份验证或其他身份验证器。 检查cassandra.yaml文件中的'authenticator'属性,它设置为PasswordAuthenticator
, AllowAllAuthenticator
还是其他?
如果使用PasswordAuthenticator
,则可以通过将PlainTextAuthenticator
实例作为authProvider
传递给客户端选项来指定凭据:
var PlainTextAuthProvider = cassandra.auth.PlainTextAuthProvider;
var client = new cassandra.Client({ contactPoints:['127.0.0.1:9042'],
authProvider: new PlainTextAuthProvider('cassandra', 'cassandra')};
使用身份验证时,可用的默认用户是密码为“ cassandra”的“ cassandra”,但是您可以按照“ 配置身份验证”进行更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.