CouchAppのコマインドラインツールについて解説しましょう。先ほど、ローカルに「test」というプロジェクトを作成しました。コードやattachmentsに置いた添付ファイルをCouchDBにアップロードするには、pushサブコマンドを使用します。
pushコマンドはtestディレクトリ以下をすべてアップロードします。つまり、CouchDB上のファイルは上書きされてしまうので気をつけてください。以下のように、pushのあとに続けてデータベースのURLを指定します。
$ couchapp push http://127.0.0.1:5984/test [INFO] Visit your CouchApp here: http://127.0.0.1:5984/test/_design/test/index.html
表示されるURLにアクセスしてみると、以下の画面が表示されます。たったこれだけで、データベースの作成までできてしまいました。
CouchAppの設定については、.couchapprcという設定ファイルが生成されますので、こちらを編集してください。例えば以下のように設定しておくと、毎回pushする際にデータベースのURLを指定する必要がなくなります。
{ "env": { "default": { "db": "http://localhost:5984/test" } } }
そのほか、コマンドラインツールの使い方については、以下のヘルプを参照してください。
$ couchapp --help Usage: couchapp [options] cmd Options: --version show program's version number and exit #バージョン表示 -h, --help show this help message and exit #ヘルプを表示 -v print message to stdout #標準出力へメッセージを表示する -q don't print any message #メッセージを表示しない Generate a new CouchApp! (start here): couchapp generate [appdir] Pushes a CouchApp to CouchDB: couchapp push [options] [appdir] [appname] [dburl] --atomic store atomically the couchapp. #アトミック性を保証してデータを保存する --export Export the generated design doc to your console. If #デザインドキュメントをエクスポートする。--outputオプションで出力するファイルを指定する --output is specified, write to the file. --output=OUTPUT Combined with --export it allow you to save the generated design doc to the file. Clones/Pulls a CouchApp from a url (like http://host/db/_design/CA_name): couchapp clone/pull [dir] #データベースurlを指定して、cloneまたはpullを行う Initialize CouchApp .couchapprc: couchapp init [options] #CouchAppの設定を初期化する。--dbオプションでデータベースURLを指定する --db=DB full url of default database Install a vendor: couchapp vendor install vendor_url [option][appdir] #バージョン管理システムを導入する。デフォルトでは、gitになっている。 --scm=SCM scm used to install the vendor, by default git
それでは、CouchAppでHello Worldをしてみたいと思います。デザインドキュメントの「show」をcouchappで生成してみましょう。CouchAppでは、「show」の基本的な関数を生成することができます。以下のコマンドを実行してください。
$ couchapp generate show hello
コマンドを実行すると、showsディレクトリ配下に、「hello.js」というファイルが生成されます。
function(doc, req) { }
ご覧のとおり、中には関数が作成されています。ここにreturnを記述することによって、クライアント側に返す値を定義できます。関数の戻り値が未定義だとエラーになりますので、注意しましょう。
function(doc, req) { return "hello world!"; }
ファイルを編集して保存したたら、先ほどと同じように以下のコマンドを実行してください。
$ couchapp push http://127.0.0.1:5984/test
そして、ブラウザで以下のURLを開くと「hello world!」と表示されています。
http://192.168.1.111:5984/test/_design/test/_show/hello
同様にして、CouchDBの基本的なAPIである、「list」や「view」の関数も生成することができます。
そのほかCouchAppでできることについては、CouchDB:The Definitive Guideが参考になると思います。CouchAppは現在も活発に開発が続けられており、仕様もどんどん変化しているようです。最新の情報については、CouchAppのGoogleグループの情報を参考にしてみてください。
以上、CouchAppの使い方について紹介しました。 今回すべてを紹介することはできませんでしたが、 環境を整えたあと、取りあえず簡単なものを作ってみるのがよいと思います。また、CouchDBそのものを使いこなしたいときは、すでにCouchDBを使って公開されているアプリケーションを参考にするのが一番だと思います(筆者もそうしています)。
その中でも、第1回で紹介したCouchDBで作成されているblogツール「sofa」はCouchDBを使う上でとても参考になる実装です(前述のCouchDB:The Definitive Guideでも、sofaを題材として、CouchDBをhackしようというノリです)。ソースコードもGithubで公開されていますので、よいリファレンスとなると思います。
Copyright © ITmedia, Inc. All Rights Reserved.