ApacheとMongoDBshellでJavaScript CGIを作ろうとしたらやっぱり無理だった件

MongoDBには、MongoDBshellというJavaScript実行環境が付属しています。
このMongoDBshellを使えば、Apache+MongoDBだけでJavaScript CGI環境が作れるのではないかと思いやってみたところ、あえなく頓挫してしまいました。
誰かに役に立つかもしれないので経緯をさらしておきます。

MongoDBshellでCGIをやるまでの手順

環境:Ubuntu 12.04, mongodb-linux-i686-2.0.4

下記記事のとおりにMongoDBをバイナリインストール。
3分でMongoDBをLinuxにインストールしてJavascriptシェルで遊んでみよう! - DQNEO起業日記

MongoDBサーバを起動
mkdir /tmp/db
~/mongodb-linux-i686-2.0.4/bin/mongod --dbpath /tmp/db  > log &
Apacheのconfファイルを編集して、.jsファイルをCGIとして登録
AddHandler cgi-script .js
さっそくhello worldをやってみる。
#!/home/dqneo/mongodb-linux-i686-2.0.4/bin/mongo  --quiet

print("Content-type:text/html\n\n");
print("hello, mongoDB");

ワクテカしながらブラウザでアクセス。
http://localhost/hello.js

出た!
出ました!


Apache + MongoDBshellによるCGIが動きました!

しかし、GETでパラメータを渡してみると謎の挙動が。
http://localhost/hello.js?foo



あら?
どういうこと?
追記
http://localhost/hello.js?foo=bar
のようにすれば、エラーは出なくなりました。

いろいろ調べてみたのですが、環境変数やらQUERY_STRINGやら標準入力をMongoDBshellで受け取る方法がどうやってもわかりませんでした。

こうして、MongoDBによるJavaScript CGI計画は頓挫。

どなたが詳しい方がいらっしゃいましたら教えていただければ幸いです。
カテゴリ:

人気記事