环境:操作系统:Debian,Cassandra:3.10,Node.js 7.5.0,cassandra-driver:3.2.0
错误: (node:7484)UnhandledPromiseRejectionWarning:未处理的promise promise(拒绝ID:1):错误:所有尝试查询的主机都失败了。第一个主机尝试,192.168.10.151:9042:错误:连接ECONNREFUSED 192.168.10.151:9042。请参阅innerErrors。(node:7484)DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的承诺拒绝将使用非零退出代码终止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;
我不确定我做错了什么。
答案 0 :(得分:0)
你的插入语句似乎也没有效果。你可以试试吗
'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
答案 1 :(得分:0)
你确定你没有cassandra用户吗?
如果你有,请以这种方式连接到cassandra:
const authProvider = new cassandra.auth.PlainTextAuthProvider('user', 'pass');
const client = new cassandra.Client({ contactPoints: ['192.168.10.151'], keyspace: 'users', authProvider: authProvider});