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/admin/23 -> /user/:role/:id -> {role => 'admin', id => 23}

/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 为 *, 其编译出的正则表达式类似 (.+), 即匹配所有字符, 如:

也就是通配符.


Mojolicious-Routing-文档
http://example.com/2023/05/18/Mojolicious-Routing-文档/
作者
Jie
发布于
2023年5月18日
许可协议