browserify-adventure-jp
Version:
learn browserify with this educational adventure
43 lines (27 loc) • 2.06 kB
Plain Text
browserifyはブラウザコンパチブルのNodeコアモジュールを多数含んでいます。
例えばurl, path, querystring, events, stream, utilなどなど。
このため、ブラウザを意識することなくNode向けに書かれたモジュールもブラウザ上で
動くということです!
今回は `prompt()` はウェブのアドレスを返します。
このアドレスのクエリ文字列をパースし、そのなかの "file" パラメータをウェブアドレス
につなげて出力するようにします。
たとえば、次のアドレス:
http://substack.net/filez/dogez/img.cgi?file=../hi/doge.gif
これを以下のように出力するようにします。
http://substack.net/filez/hi/doge.gif
手製のパーサを使う代わりに、Nodeのコアモジュールが便利なのでそれを使いましょう。
urlモジュールとquerystringモジュールです。
* url.parse(addr) はウェブアドレスの文字列を受け取り、そのURLの全てのコンポーネント
をオブジェクトとして返します。そのコンポーネントのうち、"query"プロパティは
必要になるでしょう。
* url.resolve(baseAddr, path) は `path` 文字列を baseAddr URLに対して解決します。
* querystring.parse(str) は クエリ文字列 `str` を受け取り、キーと値にマッピングした
オブジェクトを返します。
`require('url')` と `require('querystring')` を利用するだけでこれらの関数が利用可能に
なります。 `npm install` を実行する必要はありません。これらはNodeのようにbrowserifyに
あらかじめ組み込まれています。
プログラムができたらエントリーファイルを `browserify` でコンパイルし、
`$ADVENTURE_COMMAND verify` にパイプで渡してください:
browserify main.js | $ADVENTURE_COMMAND verify
検証なしでプログラムを走らせたい場合には以下のようにします。
browserify main.js | $ADVENTURE_COMMAND run