在通過9個分支版本的迭代開發後,lor終於發佈了0.1.0版本。同時帶來了更全面的文檔和API介紹,以及一個全站的示例項目OpenResty China。關於lor的詳細介紹以下:html
Lor是一個運行在OpenResty上的基於Lua編寫的Web框架.nginx
路由採用Sinatra風格,Sinatra是Ruby小而精的web框架.git
API基本採用了Express的思路和設計,Node.js跨界開發者能夠很快上手.github
支持插件(middleware),路由可分組,路由匹配支持strin或正則模式.web
lor之後會保持核心足夠精簡,擴展功能依賴middleware來實現. lor
自己也是基於middleware構建的.express
推薦使用lor做爲HTTP API Server,lor也已支持session/cookie/html template等功能.json
簡單示例項目lor-exampleapi
全站示例項目openresty-china服務器
http://lor.sumory.comcookie
特別注意: 在使用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/,便可。
MIT