Mojolicious::LiteでWebフレームワークを試す [その2]
前回の続き。
複数のルート(routes)で分ける。
ルート(routes)というのはMojoliciousドキュメントでは以下のように説明されています。
ルート(routes)とは一般的にいうと異なる種類のプレースホルダを含むことのできる仮想的なパスです。
個人的には
という極曖昧な理解をしています。
まぁ以下のコードを書いて試してみましょう。
#!/usr/bin/perl use strict; use warnings; use lib qw(/home/users/hogehoge/web/lib/perl/mojo/lib); use Mojolicious::Lite; # 以下は / でアクセスできます。 get '/' => sub { my $self = shift; $self->render( text => 'Hello!' ); }; # 以下は /morning でアクセスできます。 get '/morning' => sub { my $self = shift; $self->render( text => 'Good morning!' ); }; # 以下は /afternoon でアクセスできます。 get '/afternoon' => sub { my $self = shift; $self->render( text => 'Good afternoon!' ); }; # 以下は /night でアクセスできます。 get '/night' => sub { my $self = shift; $self->render( text => 'Good evening!'); }; app->start;
これを"geeting.cgi"としてファイルに保存してサーバにアップすると次のようになると思います。
- http://hogehoge.com/greeting.cgi にアクセスした場合
- "Hello!"と表示されます。 サンプル
- http://hogehoge.com/greeting.cgi/morning にアクセスした場合
- "Good morning!"と表示されます。サンプル
- http://hogehoge.com/greeting.cgi/afternoon にアクセスした場合
- "Good afternoon!"と表示されます。サンプル
- http://hogehoge.com/greeting.cgi/night にアクセスした場合
- "Good evening!"と表示されます。サンプル
このようにスクリプトのURLを先頭に/*** をつけると動作が変わります。
引数を渡してみる。
次は引数(パラメータ)を受け取るコード。
#!/usr/bin/perl use strict; use warnings; use lib qw(/home/users/hogehoge/web/lib/perl/mojo/lib); use Mojolicious::Lite; get '/:name' => sub { my $self = shift; my $name = $self->param('name); $self->render( text => "Hello, $name!" ); }; app->start;
これを"hello_with_name.cgi"として保存しアップロードします。
にアクセスすると"Hello, Hoge!"と表示されます。
ちなみに
get '/' => sub {
の箇所を
get '/' => {name => 'You'} => sub {
と書き換えることでデフォルト値を持たせることも可能です。
つまり
にアクセスするとデフォルトで'You'が指定されて"Hello, You!"と表示されます。