2012-10-15 9 views
11

Ciągle napotykam na ten sam problem, gdy próbuję wysłać zapytanie do serwera Cassandra. Mam npm zainstalowany węzeł-klient-klient wersja 0.9.5.node.ass node-cassandra-client request failing

Wygląda na to, że połączenie się udało. Ale ciągle napotykam następujący błąd:

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 

Niezależnie od tego, jaki jest wniosek, ciągle mam ten sam błąd.

+1

Próbowałem z helenus zamiast Cassandra-klienta, a to wydaje się działać dobrze. – Florent

Odpowiedz

2

Wiem, że jest trochę za późno, ale wywołujesz cassandra.execute z dwoma parametrami (zapytanie i wywołanie zwrotne), gdy akceptuje trzy (zapytanie, lista parametrów zapytania i wywołanie zwrotne).

Spróbuj zmienić:

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

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

do

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

, które nie jest konieczne. parametr jest opcjonalny – Abhi

+1

@Abhi był obowiązkowo w wersji 0.9.5, ponieważ 'execute' nazywa się' bind' bezpośrednio, co z kolei użyło '.length' drugiego argumentu. [Sprawdź na yourelf] (https://github.com/racker/node-cassandra-client/blob/v0.9.5/lib/driver.js#L410-L411) – soulcheck