【问题标题】:Having trouble writing remotely to Cassandra server from node.js从 node.js 远程写入 Cassandra 服务器时遇到问题
【发布时间】:2017-09-04 04:40:38
【问题描述】:

环境:操作系统:Debian,Cassandra:3.10,Node.js 7.5.0,cassandra-driver:3.2.0

错误: (节点:7484)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 id:1):错误:所有主机尝试查询失败。第一个主机尝试,192.168.10.151:9042:错误:连接 ECONNREFUSED 192.168.10.151:9042。请参阅 innerErrors.(node:7484) DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。

Nodejs 代码:

var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
var fs = require('fs');
var cassandra = require('cassandra-driver');
var async = require('async');
var client = new cassandra.Client({contactPoints: ['192.168.10.151'], keyspace: 'users'});

router.post('/', function(req, res, next) {
    var query = 'INSERT INTO userAuth(email,password) VALUES(req.body.email,req.body.password)';
    client.execute(query);
    });

module.exports = router;

我不确定我做错了什么。

【问题讨论】:

  • 你确定你在192.168.10.1519042上运行cassandra进程吗?
  • 是的,我可以通过 ssh 连接到它并使用 cql 进行查询。根据 Cassandra 文档,默认客户端端口是 9042。

标签: node.js cassandra


【解决方案1】:

您的插入语句似乎也无效。你可以试试

'INSERT INTO userAuth(email,password) VALUES(?,?)'

然后

execute(query, [req.body.email, req.body.email]);

另外我认为添加查询结果处理功能可能是个好主意

function(n, row) {
    console.log('everything is o.k.');
},
function (err) {
   console.log('something went wrong', err);
}

另外错误好像和这个很相似,所以尝试更新cassandra.yaml文件中的广播地址为192.168.10.151

dse-driver connection refused

【讨论】:

  • 我将 cassandra.yaml 广播地址设置为 192.168.10.151,rpc_address 和 listen_address 我仍然无法连接到它。我无法 cqlsh 进入该 IP。仅当我将其设置为 localhost 时才有效。
【解决方案2】:

你确定你没有 cassandra 用户吗?

如果你有,请以这种方式连接到 cassandra:

const authProvider = new cassandra.auth.PlainTextAuthProvider('user', 'pass');

const client = new cassandra.Client({ contactPoints: ['192.168.10.151'], keyspace: 'users', authProvider: authProvider});

【讨论】:

    猜你喜欢
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 2012-07-24
    相关资源
    最近更新 更多