連載
» 2010年02月08日 00時00分 公開

ゆったリラックス! CouchDBがあるところ(3):Officeユーザーにこそ?CouchDBでお手軽アプリ開発 (2/3)

[はせがわしんいちろう,CouchDB JP]

CouchAppのコマンドラインツールの使い方

 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にアクセスしてみると、以下の画面が表示されます。たったこれだけで、データベースの作成までできてしまいました。

fig1 図2 生成されたCouchAppのページ

 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!

 それでは、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
fig1 図3 CouchAppでhello world!

 同様にして、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.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。