Lor是一个运行在上的基于Lua编写的Web框架,当前最新版本是0.0.2预览版,重构了之前发布的。主要API特性已经freeze,下个版本为0.0.3,着重于修复当前路由的匹配bug。
特性
路由采用风格,Sinatra是Ruby小而精的web框架.
API基本采用了的思路和设计,Node.js跨界开发者可以很快上手.
支持插件(middleware),路由可分组,路由匹配支持string/正则模式.
lor以后会保持核心足够精简,扩展功能依赖
middleware
来实现.lor
本身也是基于middleware
来实现的.推荐使用lor作为HTTP API Server,lor此后也会支持模板渲染/Session/Cookie等常规web功能.
提供了一个cli工具
lord
,可以一键生成项目骨架/启动、停止项目,快速体验OpenResty和lua开发.框架文档在
讨论交流
目前有一个QQ群用于在线讨论: 522410959
快速开始
在使用lor之前请首先确保OpenResty和luajit已安装.
一个简单实例:
local lor = require("lor.index")local app = lor()-- 插件: 对以`/user`开始的请求做过滤处理app:use("/user", function(req, res, next) req.params.inject = 'inject value' next()end)-- 按id查找用户app:get("/user/query/:id", function(req, res, next) local query_id = req.params.id -- 从req.params取参数 -- 处理... next() -- 交给下一个调用者end)app:post("/user/:id/create", function(req, res, next) -- 创建一个用户end)-- 404 errorapp:use(function(req, res, next) if req:isFound() ~= true then res:status(404):send("sorry, not found.") endend)-- 错误处理插件,可根据需要定义多个app:erroruse(function(err, req, res, next) -- err是错误对象 res:status(500):send("服务器内发生未知错误")end)
安装
使用install.sh安装lor框架
#如把lor安装到/opt/lua/lor目录下sh install.sh /opt/lua/lor
执行以上命令后lor的命令行工具lord
就被安装在了/usr/local/bin
下, 通过which lord
查看:
$ which lord/usr/local/bin/lord
lor
的运行时包安装在了/opt/lua/lor
下, 通过ll /opt/lua/lor
查看:
$ ll /opt/lua/lortotal 56drwxr-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.mddrwxr-xr-x 4 root wheel 136B 1 22 00:06 bin-rw-r--r-- 1 root wheel 1.6K 1 19 23:48 install.md-rw-r--r-- 1 root wheel 1.0K 1 21 22:37 install.shdrwxr-xr-x 4 root wheel 136B 1 21 22:40 lordrwxr-xr-x 13 root wheel 442B 1 22 01:17 test
至此, lor
框架已经安装完毕,接下来使用lord
命令行工具快速开始一个项目.
使用
$ lord -hlor v0.0.2, 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 tipsOptions: --debug Show some runtime details
执行lord new lor_demo
,则会生成一个名为lor_demo的示例项目,然后执行:
cd lor_demolord start
之后访问:8888/,即可。
更多使用方法,请参考test测试用例。
License
MIT