Posted at

cradle で CouchDB にDBを作成しても save ができなかった(ように見えた)件


だめな例

var conn = new(cradle.Connection)(

constants.DB_URL,
constants.DB_PORT
);
var db_master = conn.database('ddntj');
db_master.create();
db_master.save('hoge', { data:huga } , callback(){...});

……とベタ書きするとこいつは saveしてくれません

原因は create() でDB作るのに(CouchDB側で)少しだけ時間がかかるのにその前にsaveが走るからです。

まぁ、当たり前っちゃ当たり前なのですがこれエラーも何も吐かないのでちょっと原因を探るのに時間かかりました。

create()でcallback関数が設定できればいいんですがどうやらそんな引数は無い模様。


動いた例

……で、どうしたかっていうと

var conn = new(cradle.Connection)(

constants.DB_URL,
constants.DB_PORT
);
var db_master = conn.database('ddntj');
db_master.create();
setTimeout(()=>db_master.save('hoge', { data:huga } , callback(){...}),1000);

単純ですが……これはアカンやつやろな……一応issueは送っておきました。実装してくれればいいんだけど。