资讯专栏INFORMATION COLUMN

基于OpenResty的Lua Web框架lor0.0.2预览版发布

fnngj / 2131人阅读

摘要:是一个运行在上的基于编写的框架,当前最新版本是预览版,重构了之前发布的版本。主要特性已经,下个版本为,着重于修复当前路由的匹配。更多使用方法,请参考测试用例。

Lor是一个运行在OpenResty上的基于Lua编写的Web框架,当前最新版本是0.0.2预览版,重构了之前发布的0.0.1版本。主要API特性已经freeze,下个版本为0.0.3,着重于修复当前路由的匹配bug。

特性

路由采用Sinatra风格,Sinatra是Ruby小而精的web框架.

API基本采用了Express的思路和设计,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 error
app:use(function(req, res, next)
    if req:isFound() ~= 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框架

#如把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/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.6K  1 19 23:48 install.md
-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
drwxr-xr-x  13 root  wheel   442B  1 22 01:17 test

至此, lor框架已经安装完毕,接下来使用lord命令行工具快速开始一个项目.

使用
$ lord -h
lor 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 tips

Options:
 --debug                Show some runtime details

执行lord new lor_demo,则会生成一个名为lor_demo的示例项目,然后执行:

cd lor_demo
lord start

之后访问http://localhost:8888/,即可。

更多使用方法,请参考test测试用例。

License

MIT

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/39229.html

相关文章

  • Week4 优质文章整理

    摘要:错过了一周的优质内容,不要再错过周一的快速回顾一周深度揭秘启动全过程翻译组每周社区问答入门语言简明入门与提高一只爬虫崔小拽爬虫知乎用户数据爬取和分析如何学习开源动效分析二动画最佳实践一工具箱之生命周期工具箱之权限管理一步步创建自己的框 错过了一周的优质内容,不要再错过周一的快速回顾 一周 fir.im Weekly -《深度揭秘 App 启动全过程》 SwiftGG翻译组 -《每周 S...

    hiYoHoo 评论0 收藏0
  • Week4 优质文章整理

    摘要:错过了一周的优质内容,不要再错过周一的快速回顾一周深度揭秘启动全过程翻译组每周社区问答入门语言简明入门与提高一只爬虫崔小拽爬虫知乎用户数据爬取和分析如何学习开源动效分析二动画最佳实践一工具箱之生命周期工具箱之权限管理一步步创建自己的框 错过了一周的优质内容,不要再错过周一的快速回顾 一周 fir.im Weekly -《深度揭秘 App 启动全过程》 SwiftGG翻译组 -《每周 S...

    call_me_R 评论0 收藏0
  • OpenResty Web框架lor发布0.1.0稳定

    摘要:在经过个分支版本的迭代开发后,终于发布了版本。同时带来了更全面的文档和介绍,以及一个全站的示例项目。即在命令行直接输入能正确输出。 在经过9个分支版本的迭代开发后,lor终于发布了0.1.0版本。同时带来了更全面的文档和API介绍,以及一个全站的示例项目OpenResty China。关于lor的详细介绍如下: Lor是一个运行在OpenResty上的基于Lua编写的Web框架. 路...

    KevinYan 评论0 收藏0
  • openresty 前端开发轻量级MVC框架封装二(渲染篇)

    摘要:我们已经用开发了版,还有微信版的应用,已经运行几个月了,很稳定,上手也简单,开发的时候不用编译,直接启动一个就搞定,部署的时候只需要几的内存,还可以用做各种事情,高并发防火墙,直接跑在里面,简直爽歪歪,有机会跟大家分享。示例代码参见部分 这一章主要介绍怎么使用模板,进行后端渲染,主要用到了lua-resty-template这个库,直接下载下来,放到lualib里面就行了,推荐第三方库...

    SimonMa 评论0 收藏0

发表评论

0条评论

fnngj

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<