美文网首页server
基于OpenResty的web开发框架Lor

基于OpenResty的web开发框架Lor

作者: Mn午夜 | 来源:发表于2016-04-16 17:28 被阅读2384次

    Lor是一个运行在OpenResty上的基于Lua编写的Web框架。Lor可用来编写HTTP API Server或是传统的web网站。

    特性

    • 路由采用Sinatra风格,Sinatra是Ruby小而精的web框架.
    • API基本采用了Express的思路和设计,Node.js跨界开发者可以很快上手.
    • 支持插件(middleware),路由可分组,路由匹配支持strin或正则模式.
    • 核心足够精简,扩展功能通过编写middleware来实现.

    示例

    Github

    https://github.com/sumory/lor

    文档

    http://lor.sumory.com

    快速开始

    特别注意: 在使用lor之前请首先确保OpenResty和luajit已安装,并配置到环境变量中。即在命令行直接输入nginx -vluajit -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: lord 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

    相关文章

      网友评论

        本文标题:基于OpenResty的web开发框架Lor

        本文链接:https://www.haomeiwen.com/subject/olqolttx.html