MojoliciousLite: 实时的web框架:
SYNOPSIS 简介:
# Automatically enables "strict", "warnings", "utf8" and Perl 5.10 features
use Mojolicious::Lite;
# Route with placeholder
get '/api/:foo' => sub {
my $c = shift;
my $foo = $c->param('foo');
$c->render(text => "Hello from $foo.");
};
# Start the Mojolicious command system
app->start;
zjzc01:/root/mojo# curl http://127.0.0.1:3000/api/xx
Hello from xx.
zjzc01:/root/mojo# curl http://127.0.0.1:3000/api/abc123
Hello from abc123.zjzc01:/root/mojo#
描述:
Mojolicious::Lite 是一个微型实时框架:
Mojolicious::Lite 实现了下面的函数,自动导出。
any
my $route = any '/:foo' => sub {...};
my $route = any '/:foo' => sub {...} => 'name';
my $route = any '/:foo' => {foo => 'bar'} => sub {...};
my $route = any '/:foo' => [foo => qr/\w+/] => sub {...};
my $route = any ['GET', 'POST'] => '/:foo' => sub {...};
my $route = any ['GET', 'POST'] => '/:foo' => [foo => qr/\w+/] => sub {...};
声明 route 为any 在Mojolicious::Routes::Route, 匹配所有的HTTP 请求方法或者all.
app
my $app=app;
返回Mojolicious::Lite 应用对象
# Use all the available attributes and methods
app->log->level('error');
app->defaults(foo => 'bar');
del
my $route = del '/:foo' => sub {...};
my $route = del '/:foo' => sub {...} => 'name';
my $route = del '/:foo' => {foo => 'bar'} => sub {...};
my $route = del '/:foo' => [foo => qr/\w+/] => sub {...};
匹配DELETE 请求
get
my $route = get '/:foo' => sub {...};
my $route = get '/:foo' => sub {...} => 'name';
my $route = get '/:foo' => {foo => 'bar'} => sub {...};
my $route = get '/:foo' => [foo => qr/\w+/] => sub {...};
只匹配get请求
group
group {...}
开始一个route group
Routes:
Routes 只是对请求过来的路径指向不同的函数,可以在路径中包含不同的占位符,
传进来的一个参数是$c 是 Mojolicious::Controller 对象本身,它也包含着HTTP request和HTTP reponse的对象:
GET/POST 传进来的参数:
use Mojolicious::Lite;
# /foo?user=sri
get '/foo' => sub {
my $c = shift;
my $user = $c->param('user');
$c->render(text => "Hello $user.");
};
app->start;