lapis 路由

1. 路由以及url 模式
参考如下:
local lapis = require("lapis")
local app = lapis.Application()

app:match("/", function(self) end) // 必须的
app:match("/hello", function(self) end)
app:match("/users/all", function(self) end)
2. 带参数的路由格式
// 包含请求参数的 使用: 

app:match("/page/:page", function(self)
  print(self.params.page)  // 打印输出参数, 比如 /page/dalong  输出  {page:"dalong"}
end)

// 可选路由参数(使用括号)
/projects/:username(/:project)

// * 符号,匹配尽可能多的参数,说白了,就是url 参数中其余的
                    
app:match("/browse/*", function(self)
  print(self.params.splat)
end)
app:match("/user/:name/file/*", function(self)
  print(self.params.name, self.params.splat)
end)
3. 路由优先级
a. 完全匹配 /hello/world
b. 变量路由 /hello/:variable
c. 统配路由 /hello/*
4. 别名路由(结合self:url_for  类似路由的别名)
// 参考如下:
local lapis = require("lapis")
local app = lapis.Application()

app:match("index", "/", function(self)
  return self:url_for("user_profile", { name = "leaf" })
end)

app:match("user_profile", "/user/:name", function(self)
  return "Hello " .. self.params.name .. ", go home: " .. self:url_for("index")
end)

posted on 2017-11-15 20:40  荣锋亮  阅读(273)  评论(0编辑  收藏  举报

导航