我正在使用lua(wsapi和uWSGI)学习web开发。 我正在尝试创建一个请求对象(https://keplerproject.github.io/wsapi/libraries.html)以查看它的外观(以及如何使用它)。所以我设置了一个示例代码:
require "wsapi.cgi"
function run(wsapi_env)
local headers = { ["Content-type"] = "text/html" }
local function hello_text()
local result = "<html><body>\n"
result = result .. "<p> Hello Wsapi !</p>\n"
result = result .. "<p>PATH_INFO wsapi_env: " .. wsapi_env.PATH_INFO .. "</p>\n"
-- problematic code
local req = wsapi.request.new(wsapi_env)
if req
then
--condition to see if req was nill
result = result .. "<p>PATH INFO_POST : " .. req.POST .. "</p>\n"
result = result .. "<p>PATH INFO_GET : " .. req.GET .. "</p>\n"
else
result = result .. "<p> No request <\p>\n"
end
-- end of the problematic code
result = result .. "<p><form method=\"post\" action=\"hello.lua\">\n"
result = result .. "<textarea name=\"message\"> test </textarea>\n"
result = result .. "</form></p>\n"
result = result .. "</body></html>\n"
coroutine.yield(result)
end
return 200, headers, coroutine.wrap(hello_text)
end
return run
但是当我使用请求对象时,客户端会收到一个空白页面。
如何创建和使用请求对象?
感谢您的回答!
额外的问题:如何重定向到另一个页面(到同一个域的静态页面)?
答案 0 :(得分:0)
也许这个小代码片段会有所帮助:
local ws_request = require "wsapi.request"
function run(wsapi_env)
local qs = wsapi_env.QUERY_STRING
print("QUERY_STRING: " .. qs)
local req = ws_request.new(wsapi_env)
print(req.params.q)
end