Skip to content

node.jsとCouchbaseとexpressでシンプルなRestAPI作ってみた

2013年4月1日

今更、wordpress.comでコードのハイライトができることを知りました。
http://en.support.wordpress.com/code/posting-source-code/

前回のMongoDBのソースを参考にCouchbaseでのRESTも作った。
すっごく簡単な内容だけど、拡張していけると思うので備忘録気分で書いておきます。
ごちゃごちゃしちゃったので、接続部分だけ。

前提として
・express
・couchnode
・jade
の環境で作ってます。

couchnodeの環境づくりはこっちを参考にどーぞ

couch.js
接続クラス。root内に格納するやつ

var couchbase = require('couchbase');
var Bucket;

// 接続・バケット保持
couchbase.connect(require('./couchbase/config.json'), function(err, bucket){
  if(err){throw(err)}; // エラーが来たらthrowする
  console.log('connect!');
  Bucket = bucket;
  console.log(bucket);
});

// ID検索
exports.findById = function(id,callback){
	Bucket.get(id, function(err, doc, meta) {
    callback(err,doc);
  });
}


exports.createData = function(req,res){
	// ドキュメントがなければ、100個のデータをランダムで作成する
	for(var i = 0; i < 100; i++){
		// chartIdをインクリメントする。なければ自動生成される
    	Bucket.incr("chartId", function(err,id){
			doc = {y:Math.random(), type:"chart_data"};
			Bucket.set(id.toString(),doc,meta,function(err){
				if(err){throw(err)}; 
				// console.log("set end");
			});
    	});
	}
}

config.json
couchbaseへの接続情報

{
	"user":"",
	"password":"",
	"hosts":["localhost:8091"],
	"bucket":"/***バケット名***/",
	"debug":"true"
}

app.js
に以下を追加

app.get('/hoge/:id',function(req,res){
  couch.findById(req.params.id,function(err,data){
    res.send(data);
  });
});

みたいにすればいけた。
リストを取得したい場合は、Viewを作らないと行けないからまだできてません。
とりあえず指定IDのものだけ取得は問題なくできた。

広告

From → Couchbase, node.js

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。