Skip to content

Instantly share code, notes, and snippets.

@mcroydon
Created May 11, 2010 18:42
Show Gist options
  • Save mcroydon/397670 to your computer and use it in GitHub Desktop.
Save mcroydon/397670 to your computer and use it in GitHub Desktop.
// A simple Cassandra node.js "Hello World"
// Assumes Cassandra 0.6.1 on localhost with the default schema.
//
// You'll also want to load some data:
//
// $ cassandra-cli --host localhost --port 9160
// Connected to: "Test Cluster" on localhost/9160
// Welcome to cassandra CLI.
//
// Type 'help' or '?' for help. Type 'quit' or 'exit' to quit.
// cassandra> set Keyspace1.Standard1['foo']['bar'] = 'baz'
var sys = require('sys'),
http = require('http');
// Set up logging (http://github.com/csausdev/log4js-node)
var log4js = require('log4js-node');
log4js.addAppender(log4js.consoleAppender());
var logger = log4js.getLogger('pants');
logger.setLevel('DEBUG');
// Set up Cassandra (http://github.com/danieldkim/cassandra-node-bridge)
var cassandra = require('cassandra-node-client').create(10000, '127.0.0.1', logger)
var ConsistencyLevel = require('cassandra-node-client').ConsistencyLevel
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
var cassreq = cassandra.create_request("get_slice", {
keyspace: "Keyspace1", key: "foo",
column_parent: {column_family:"Standard1"},
predicate: {column_names:["bar"]},
consistency_level: ConsistencyLevel.QUORUM
})
cassreq.addListener("success", function(result) {
result.forEach(function(col) {
sys.puts("Got column " + col.name + ":" + col.value);
response.write("Got column " + col.name + ":" + col.value + "\n");
});
response.end();
})
cassreq.addListener("error", function(mess) {
sys.puts("Error from cassandra-node-client: " + mess)
})
cassreq.send();
}).listen(8000);
sys.puts('Server running at http://127.0.0.1:8000/');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment