2010/12/18
Google App Engine でサーバーサイドJavaScript
すみません!
この記事はJavaScript Advent Calendar 2010の記事です
サーバーサイドJS盛り上がってますね(ぼくの観測範囲で)
まあ主に node.js とか node.js とか node.js とか
たしかにサーバーサイドJSなら、これまでHTML+CSS+JavaScriptでクライアント側を書いてた人も、新しい言語の構文とか覚えずにサーバーサイドが書けちゃいますよ
でも、まだ実行環境を整えるのはちょっとたいへん…
こんなときPHPなら、適当なレンタルサーバー借りても大抵動かせちゃうのに!よしPHPをやろう!
はい、JavaScript Advent Calendar の記事です
それ、appengineでできるよ
というわけで、Google App Engine でサーバーサイドJSをやってみます
なんでも、appengine 上でRhinoが動くので、RhinoベースのサーバーサイドJSライブラリが動くらしい
「らしいです」というのは、ぼくもこの記事書くためにはじめてやってみるので、まあ探り探りやっていく感じです
とりあえず試してみましょう
こんな動画があったのでこれを参考に
http://ringojs.org/downloads から Source 最新版のソースをダウンロード
ぼくはWindowsなので"RingoJS v0.6.0 zip source archive"を落として解凍
そしたらコマンドプロンプトを開いて、解凍したディレクトリに移動しておきます
で、動画では bin/ringo-admin とかやってますが、Windowsだとできないので
>cd bin >ringo-admin.cmd create -a [作成するディレクトリのフルパス]
としました*2
これで土台がサクっと作られるので、次は動画にならって開発サーバを起動…
あ
動画だと dev_server.sh とか使ってますが、今までEclipse+Pluginの世界で appengine/J をやってきたので入ってないんだった…
なのでこれから普通のSDK入れるのもめんどくさいのでとりあえずEclipseで起動します
ringo-adminでできたフォルダの中にWEB-INFフォルダがあるので、その中身でEclipseで作成したappengineプロジェクトのWEB-INFの中身を上書きします!
あとは普段どおり開発サーバを立ち上げるだけで普通に動きますね!そのままデプロイもOK!
とはいえ、せっかくJSでサーバーサイドもやるんだからEclipseとか使わないほうがいいかね…
ちなみにこの先はRailsちっくな感じで作りこんでくっぽいです
とりあえずページを増やすだけならこんな感じに WEB-INF/app/actions.js に追記
var {Response} = require('ringo/webapp/response'); exports.index = function (req) { return Response.skin(module.resolve('skins/index.html'), { title: "It's working!" }); }; // ここから追記 exports.hello = function (req) { return Response.skin(module.resolve('skins/index.html'), { title: "Hello, ringojs" }); }; // ここまで追記
http://localhost:8888/hello にアクセスすると、http://localhost:8888/ のタイトル部分だけ変更されたページがでます
skins 以下がviewな感じでしょうかねー
以上おしまい
- 92 http://reader.livedoor.com/reader/
- 64 http://drillbits.jp/
- 56 http://atnd.org/events/10497
- 47 http://longurl.org
- 43 http://www.google.co.jp/reader/view/
- 41 http://www.google.co.jp/reader/view/?hl=ja&tab=wy
- 30 http://twitter.com/
- 25 http://www.google.co.jp/url?sa=t&source=web&cd=1&ved=0CBwQFjAA&url=http://d.hatena.ne.jp/drillbits/20100127/javascript_timezone_system&rct=j&q=javascript timezone&ei=z-7MTfn-AYagvQPNr_WsCg&usg=AFQjCNH92DYNEdlYE5mbaS5fEVBAWls7_w
- 22 http://ms2.seesaa.net/article/165939546.html
- 20 http://d.hatena.ne.jp/arn/?of=5

