ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

node.jsでCassandraにアクセス その1 とりあえず、読んでくる

2012-01-24 11:11:57 | そのほか
流れとして、たぶん、node.js内で、Cassandraにアクセスするんだろうなあ~と思った、そこのあなた。
そうです。今日は、それをやります。

それをやりますが、ここ


Is there a Thrift or Cassandra client for Node.js/JavaScript
http://stackoverflow.com/questions/2947470/is-there-a-thrift-or-cassandra-client-for-node-js-javascript


をみると、2とおりのやり方があるらしい。

1つは、

node-thrift
https://github.com/wadey/node-thrift

を使う方法。

もうひとつは、

Rackspaceが出しているAPI

cassandra-node
http://code.google.com/a/apache-extras.org/p/cassandra-node/

をつかうというもの。おお、Rackspace・・ということで、後者のほうで行きます。




■ダウンロード&インストール

さっきの、

cassandra-node
http://code.google.com/a/apache-extras.org/p/cassandra-node/

をみると、npmでインストールしなさいと書いてある。

は~い!というので、node.jsのフォルダにいって、

npm install cassandra-client

と打ってみた。

いっぱいいろんなのも出て、警告も出たけど、なんかインストールできたみたい。





■ソースコード作成

さっきのサイトにソースコードのサンプルが書いてあるんだけど、
そのとおりやると、ぜんぜんうまく行かなかった。

結局、こんなかんじになった。

var http = require('http');
var Connection = require('cassandra-client/node-cassandra-client').Connection;

var server = http.createServer(
    function (request, response) {
	response.writeHead(200, {'Content-Type': 'text/plain'});
	var con = new Connection({host:'localhost', port:9160,keyspace:'Keyspace1'});
	con.connect(function(err) {
		if (err) {
			response.write("err1:"+err);
			response.end();
		} else {
			con.execute('SELECT * FROM Users ', [ ], function (err, rows) {
				if (err) {
					response.write("err2:"+err);
				} else {
	       				response.write(rows[0].cols[0].name+":");
	       				response.write(rows[0].cols[0].value+"¥n");
	       				response.write(rows[0].cols[1].name+":");
	       				response.write(rows[0].cols[1].value+"¥n");
    				}
				response.end();
			});
		}
	});
    }
).listen(8124);

 ¥は、全角でかいてあるけど、本来は半角なので、置換してください
(まあ、しなくても、変な感じになるだけで、動くけどね(^^;)

上記のサイトと変えたのは、

1.var Connectionのrequireを、cassandra-client/node-cassandra-clientと、
  cassandra-clientを指定したこと。置き場の問題?

2.con.connectが終わってから、その中の関数で、con.executeを呼んだ。
  いや、こうしないとだめでしょ。とってこない前に動いてしまう。

3.SQLと結果表示
  中身を出してみました。




■動かし方

1.まず、cassandraを起動します。
  いつものとおり、コマンドプロンプトから、cassandra.batを起動するわけです。

2.node.jsを起動します。
  コマンドプロンプトから「node 上記に書いたファイル」で起動するわけです。

The "sys" module is now called "util". It should have a similar interface.

  って表示されるけど、ま、気にしないことにしよう

3.ブラウザで、アクセス。

   http://127.0.0.1:8124/

  をブラウザで見る。
  2で起動した、コマンドプロンプトに

node-cassandra-client.driver: connecting localhost:9160 {}

  とでる。そしてブラウザは

なかんじで、アクセスできる。
この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« JavaでCassandraにアクセス ... | トップ | 線形回帰、非線形などのモデ... »
最新の画像もっと見る

そのほか」カテゴリの最新記事