2012-10-15 21 views
11

विफल रहा है जब मैं एक कैसंड्रा सर्वर से पूछताछ करने का प्रयास कर रहा हूं, तो मैं एक ही समस्या में चल रहा हूं। मेरे पास npm-cassandra-client संस्करण 0.9.5 स्थापित है।node.js node-cassandra-client अनुरोध

var Connection = require('cassandra-client').PooledConnection; 

var hosts = ['host1:9160','host2:9160']; 
var cassandra = new Connection({'hosts': hosts, 'keyspace': 'keyspace'}); 
cassandra.on('log', function(level, message, obj) { 
    console.log('log event: %s -- %j', level, message); 
}); 
var cql = "SELECT * FROM columnFamily LIMIT 1"; 

cassandra.execute(cql, function(err, rows) { 
    if(err) console.log("erreur à la requete"); 

    console.log(rows); 
    cassandra.shutdown(function() { 
    console.log("connectoin pool shutdown"); 
    }); 
}) 

ऐसा लगता है कि कनेक्शन सफल हुआ। लेकिन मैं निम्न त्रुटि में चल रहा हूं:

log event: info -- "connecting host:9160(1)" 
log event: cql -- "SELECT * FROM columnFamily LIMIT 1" 
DEBUG: 
DEBUG: /PATH/cassandra-client/node_modules/thrift/lib/thrift/connection.js:90 
DEBUG:   throw e; 
DEBUG:    
DEBUG:^
DEBUG: TypeError: undefined is not a function 
    at /PATH/node_modules/cassandra-client/lib/driver.js:701:5 
    at /PATH/node_modules/cassandra-client/lib/driver.js:716:15 
    at /PATH/node_modules/cassandra-client/lib/driver.js:453:9 
    at/PATH/node_modules/cassandra-  client/node_modules/thrift/lib/thrift/connection.js:80:11 
    at Object.recv_execute_cql_query (/PATH/node_modules/cassandra-client/lib/gen-nodejs/Cassandra.js:6219:12) 
    at /PATH/node_modules/cassandra-cli ent/node_modules/thrift/lib/thrift/connection.js:83:37 
    at Socket.<anonymous> (/PATH/node_modules/cassandra-client/node_modules/thrift/lib/thrift/transport.js:69:9) 
    at Socket.emit (events.js:67:17) 
    at TCP.onread (net.js:347:14) 
DEBUG: Program node app.js exited with code 1 

जो कुछ भी अनुरोध है, मुझे वही त्रुटि मिलती है।

+1

मैं बजाय Helenus कैसेंड्रा-ग्राहक के साथ करने की कोशिश की, और यह अच्छी तरह से काम करने लगता है। – Florent

उत्तर

2

मुझे पता है कि यह थोड़ा देर हो चुकी है, लेकिन आप दो पैरामीटर (क्वेरी और कॉलबैक) के साथ cassandra.execute पर कॉल कर रहे हैं, जबकि यह तीन स्वीकार करता है (क्वेरी, क्वेरी पैरामीटर और कॉलबैक की सूची)।

कोशिश बदलते:

cassandra.execute(cql, function(err, rows) { 
    if(err) console.log("erreur à la requete"); 

    console.log(rows); 
    cassandra.shutdown(function() { 
     console.log("connectoin pool shutdown"); 
    }); 
}) 

को
cassandra.execute(cql, [], function(err, rows) { 
    if(err) console.log("erreur à la requete"); 

    console.log(rows); 
    cassandra.shutdown(function() { 
     console.log("connectoin pool shutdown"); 
    }); 
}) 
+0

जो आवश्यक नहीं है। पैरामीटर वैकल्पिक है – Abhi

+1

@ एबीआई संस्करण 0.9.5 में अनिवार्य होता था, क्योंकि 'execute' को सीधे 'बाइंड' कहा जाता था, जो बदले में दूसरे तर्क के '। लम्बाई' का उपयोग करता था। [Yourelf के लिए जाँच करें] (https://github.com/racker/node-cassandra-client/blob/v0.9.5/lib/driver.js#L410-L411) – soulcheck

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^