by 糖果

How do I respond to GET, POST, DELETE or other HTTP verbs?

如何响应GET,, POST, DELETE等动作。
The respond_to action decorator function gives a basic framework for running different code depending on the HTTP method.

在同一个路由中响应类似get,post这种用户请求,关键是要使用respond_to这个装饰器。

try_to_login is a hypothetical functions, and not regularly globally available

try_to_login,只是一个假的,用说明可能会调用的驱动函数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
local lapis = require("lapis")
local app = lapis.Application()
local respond_to = require("lapis.application").respond_to

app:match("/", respond_to({
-- do common setup
before = function(self)
if self.session.current_user then
self:write({ redirect_to = "/" })
end
end,
-- render the view
GET = function(self)
return { render = true }
end,
-- handle the form submission
POST = function(self)
self.session.current_user =
try_to_login(self.params.username, self.params.password)

return { redirect_to = "/" }
end
}))

在一个函数里声明了三个闭包函数,before、GET、POST,其中的GET,POST函数就是用来响应不同的类型请求。