在經過9個分支版本的迭代開發後,lor終於釋出了0.1.0版本。同時帶來了更全面的文件和API介紹,以及一個全站的示例專案OpenResty China。關於lor的詳細介紹如下:
Lor是一個執行在OpenResty上的基於Lua編寫的Web框架.
-
路由採用Sinatra風格,Sinatra是Ruby小而精的web框架.
-
API基本採用了Express的思路和設計,Node.js跨界開發者可以很快上手.
-
支援外掛(middleware),路由可分組,路由匹配支援strin或正則模式.
-
lor以後會保持核心足夠精簡,擴充套件功能依賴middleware來實現.
lor
本身也是基於middleware構建的. -
推薦使用lor作為HTTP API Server,lor也已支援session/cookie/html template等功能.
-
簡單示例專案lor-example
-
全站示例專案openresty-china
文件
快速開始
特別注意: 在使用lor之前請首先確保OpenResty和luajit已安裝,並配置到環境變數中。即在命令列直接輸入nginx -v
、luajit -v
能正確輸出。
一個簡單示例,更復雜的示例或專案模板請使用lord
命令生成:
local lor = require("lor.index")
local app = lor()
app:get("/", function(req, res, next)
res:send("hello world!")
end)
-- 路由示例: 匹配/query/123?foo=bar
app:get("/query/:id", function(req, res, next)
local foo = req.query.foo
local path_id = req.params.id
res:json({
foo = foo,
id = path_id
})
end)
-- 404 error
app:use(function(req, res, next)
if req:is_found() ~= true then
res:status(404):send("sorry, not found.")
end
end)
-- 錯誤處理外掛,可根據需要定義多個
app:erroruse(function(err, req, res, next)
-- err是錯誤物件
res:status(500):send("伺服器內發生未知錯誤")
end)
安裝
使用install.sh安裝lor框架,強烈建議在使用install.sh安裝前閱讀該指令碼程式碼。
# 把lor安裝到/opt/lua/lor目錄下
sh install.sh /opt/lua
# 或者安裝到預設目錄/usr/local/lor下
sh install.sh
執行以上命令後lor的命令列工具lord
就被安裝在了/usr/local/bin
下, 通過which lord
檢視:
$ which lord
/usr/local/bin/lord
lor
的執行時包安裝在了指定目錄下, 若安裝在/opt/lua/lor
,通過ll /opt/lua/lor
檢視:
$ ll /opt/lua/lor
total 56
drwxr-xr-x 14 root wheel 476B 1 22 01:18 .
drwxrwxrwt 14 root wheel 476B 1 22 01:18 ..
-rw-r--r-- 1 root wheel 0B 1 19 23:48 CHANGELOG.md
-rw-r--r-- 1 root wheel 1.0K 1 19 23:48 LICENSE
-rw-r--r-- 1 root wheel 0B 1 19 23:48 Makefile
-rw-r--r-- 1 root wheel 1.9K 1 21 20:59 README-zh.md
-rw-r--r-- 1 root wheel 870B 1 21 20:59 README.md
drwxr-xr-x 4 root wheel 136B 1 22 00:06 bin
-rw-r--r-- 1 root wheel 1.0K 1 21 22:37 install.sh
drwxr-xr-x 4 root wheel 136B 1 21 22:40 lor
至此, lor
框架已經安裝完畢,接下來使用lord
命令列工具快速開始一個專案骨架.
使用
$ lord -h
lor ${version}, a Lua web framework based on OpenResty.
Usage: lor COMMAND [OPTIONS]
Commands:
new [name] Create a new application
start Starts the server
stop Stops the server
restart Restart the server
version Show version of lor
help Show help tips
執行lord new lor_demo
,則會生成一個名為lor_demo的示例專案,然後執行:
cd lor_demo
lord start
之後訪問http://localhost:8888/,即可。
License
MIT