博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于OpenResty的Lua Web框架lor0.0.2预览版发布
阅读量:6113 次
发布时间:2019-06-21

本文共 2550 字,大约阅读时间需要 8 分钟。

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

转载地址:http://dfjka.baihongyu.com/

你可能感兴趣的文章
python装饰器1:函数装饰器详解
查看>>
杭电2054
查看>>
杭电2061
查看>>
IntelliJ IDEA常用快捷键
查看>>
Linux打包下载命令
查看>>
Idea 2018版破解
查看>>
(原創) 为什么GridView的DataSource可指定DataTable,亦可指定DataTable的DefaultView? (高级) (.NET) (ADO.NET)...
查看>>
关于现在手上做的项目的数据库设计思考
查看>>
getaddrinfo的用法
查看>>
Palindrome
查看>>
weixin
查看>>
webstorm 注册码
查看>>
GitLab版本管理
查看>>
swt,jface,rcp
查看>>
iOS之小功能模块--彩虹动画进度条学习和自主封装改进
查看>>
[LeetCode] Strobogrammatic Number II 对称数之二
查看>>
maven pom.xml具体解释(整理)
查看>>
通过Java字节码发现有趣的内幕之String篇(上)(转)
查看>>
第十七章 springboot + devtools(热部署)
查看>>
asp.net mvc 之旅—— 第四站 学会用Reflector调试我们的MVC框架代码
查看>>