Mojolicious-Routing-文档
Dispatcher
什么是 Dispatcher?
在 Web 框架中,dispatcher 是一种核心组件,用于将客户端请求(incoming requests)映射到对应的处理函数(code generating the appropriate response)。dispatcher 负责接收客户端请求,并将其转发给相应的处理函数或路由。处理函数可以是控制器(controller)、操作(action)、中间件(middleware)等。
在 Mojolicious 中,dispatcher 是一个核心组件,它接收客户端请求,并将其路由到相应的控制器(controller)或操作(action)。Mojolicious 的 dispatcher 可以根据 HTTP 请求方法、URL 路径、查询参数等信息,自动匹配相应的路由规则,并调用相应的控制器或操作来处理请求
Routes
这里需要了解类似于 :id
, :role
(这些名称任意) 占位符的用法:
1 |
|
用 /user/:role/:id
来匹配 /user/admin/23
, 占位符和匹配的结果会形成 hash 键值: {role => 'admin', id => 23}
/user/admin/:id
编译出的正则表达式为: qr/(?-xism:^\/user\/admin\/([^\/.]+))/
标准占位符
由 prefix 为 :
的字符串组成, 如 :id
, :name
, 其编译出的正则表达式类似 ([^/.]+)
, 即匹配除 /
和 .
之外的字符, 如:
所有的占位符可以用 <>
包裹, 来于周围的文本分隔:
对于用 <>
包裹的标准的占位符而言, 可以不用 prefix :
, 如
Relaxed placeholders
prefix 为 #
, 其编译出的正则表达式类似 ([^/]+)
, 即匹配除 /
以外的所有字符, 如:
这对于捕获具有扩展名的文件有用.
Wildcard placeholders
prefix 为 *
, 其编译出的正则表达式类似 (.+)
, 即匹配所有字符, 如:
也就是通配符.