ErlangでWebアプリ
30分プログラム、その387。yawsを使ってErlangでWebアプリを作ってみた。
Webアプリの内容はなんでもよかったので、適当に階乗を計算するやつにしてみた。
割としっかりしてる印象を受ける。もしかしたら、コマンドラインで動作するプログラムよりも簡単にWebアプリが作れるかもしれない。
起動
設定ファイルをコピーしてきて適宜書き換えて、起動する。
$ cp /opt/local/etc/yaws.conf.template yaws.conf $ vim yaws.conf $ yaws -i --conf yaws.conf
あとは、http://localhost:8080/fact.yawsを開けばOK。
ちなみにボクのyaws.confはこんな感じ。root権限がなくても起動できるようにした。
# 変更 logdir = ./ ebin_dir = /opt/local/lib/yaws/ebin ebin_dir = /opt/local/var/yaws/ebin include_dir = /opt/local/lib/yaws/include trace = false copy_error_log = true log_wrap_size = 1000000 log_resolve_hostname = false fail_on_bind_err = true auth_log = true pick_first_virthost_on_nomatch = true use_fdsrv = false # 変更! <server localhost> port = 8080 listen = 0.0.0.0 docroot = ./ dir_listings = true </server>
ソースコード
<html> <h1>Hello, world!!</h1> <erl> fact(0) -> 1; fact(N) -> N * fact(N-1). out(Arg) -> case queryvar(Arg,"n") of {ok,N} -> {html,integer_to_list(fact(list_to_integer(N)))}; _ -> {ehtml, {form,[], [{p,[],["Please input value: "]}, {input,[{name,n}],[]}, {input,[{type,submit}],[]}]}} end. </erl> </html>