Aptana JaxerでサーバサイドJavaScriptを始めてみよう!

第1回 Aptana Jaxerとは?/Jaxerのここが素敵

この記事を読むのに必要な時間:およそ 2 分

3.ブラウザとサーバのシームレスなやりとり

HTML上で,あるボタンをクリックして,その時点のhogeテーブルの行数を取得したいとき,Jaxerでは以下のように書くことができます。

<script runat="server-proxy">
getHogeCount(){
    return Jaxer.DB.execute('select count(*) from hoge');
}
</server>
<input type="button" value="Hogeテーブルの行数"
onclick="alert(getHogeCount());">

scrptタグのrunat属性をserver-proxyにすることで,クライアント側のJavaScriptからサーバ側のJavaScriptの関数を直に指定して呼び出すことができます。

このシンプルさがJaxerのウリの一つになります。

4.他の言語で書かれた既存のページへアクセスすることができる

<script runat="server">
Jaxer.Web.get('http://gihyo.jp/')
</script>

これだけで,gihyo.jpのトップページを取得することができます。

クロスドメインの制約を受けることなく,ローカルの,或いは外部のサーバのページにアクセスすることができるのです。

読み込んできたHTMLの必要な部分を取り出し,表示を再加工し,出力する,なんてことは簡単にできてしまいます。サーバサイドでjQueryのようなライブラリを利用すれば,コードはより簡単に書くことができます。

5.Validationコードをブラウザとサーバで共有することができる

サーバサイドJavaScriptが実現してくれることの中で,個人的に一番嬉しいのがこの項目です。

皆さんはこれまでにWebアプリケーションを作成してきた中で,JavaScriptで実装したブラウザ上の入力値チェックの結果と,JavaやPerl,PHPなどで実装したサーバ側での入力値チェックの結果が異なる経験をしたことはないでしょうか?

異なる言語で,同じことを実装するのは2倍手間がかかりますし,メンテナンスも同じように2倍手間がかかります。テストに至っては2倍ではすまないかもしれません。

Jaxerを利用すると,入力値チェックのロジックを,<script runat="both"></script>の中に記述することで,サーバ側でもクライアント側でも利用することが可能になります。

6.JavaScriptでのDBアクセスやファイルアクセス,ソケット通信ができる

サーバサイドJavaScriptと聞いて,⁠どうせDBアクセスやファイルの入出力の部分は別の言語にまかせるんだろう」と思っている方が,もしかしたらいるかもしれません。

Jaxerでは,サーバサイドでJaxerのフレームワークを利用することにより,DBへのアクセスやファイルの入出力,ソケット通信が可能になっています。

例えば,myTableをセレクトして,1行目のprice列の値を取り出すときは,以下のように記述します。

<script runat="server">
   var resultSet = Jaxer.DB.execute("SELECT * FROM myTable");
   var newPrice = resultSet.rows[0].price;
</script>

また,JaxerにはSQLiteが付属されており,プロトタイプアプリを作る場合に置いて,面倒なDBのセットアップ作業などが一切必要ないのも魅力の一つです。

7.オープンソースであり,標準に準拠しており,すでに知られているAPIを使うものである

JaxerはGPLライセンスの元に公開されているオープンソースプロダクトです。

バイナリと同時にソースコードも公開されており,誰でも中を見ることができます。

また,FireFox3で利用されているエンジンを活用しており,JavaScriptの標準に完全に則っています。

Jaxerアプリケーションは,HTMLとJavaScriptの知識があれば,誰でも簡単に構築することができます。


どうでしょうか? 少しはJaxerに興味をもっていただけたでしょうか?

次回以降,環境構築と簡単なサンプルアプリケーションの作成を通じて,より詳細なJaxerの解説を行いたいと思います。

著者プロフィール

栗栖義臣(くりすよしおみ)

TIS株式会社 主任。鹿児島県出身。大阪大学大学院工学研究科にて原子力工学を専攻。卒業後,TISで主にJavaの開発案件に携わる。 SUN × Recruit主催のmash up award 2ndにて「サグール賞」「きざし賞」「特別賞」を受賞(asso-ball.networdarium.net)。iGoogleガジェットコンテストで「特別賞」を受賞(U.T.)。ブログは「でぃべろっぱーず・さいど」。

URLhttp://dev.chrisryu.com/