资讯专栏INFORMATION COLUMN

openresty 前端开发轻量级MVC框架封装二(渲染篇)

SimonMa / 2557人阅读

摘要:我们已经用开发了版,还有微信版的应用,已经运行几个月了,很稳定,上手也简单,开发的时候不用编译,直接启动一个就搞定,部署的时候只需要几的内存,还可以用做各种事情,高并发防火墙,直接跑在里面,简直爽歪歪,有机会跟大家分享。示例代码参见部分

这一章主要介绍怎么使用模板,进行后端渲染,主要用到了lua-resty-template这个库,直接下载下来,放到lualib里面就行了,推荐第三方库,已经框架都放到lualib目录里面,lua目录放项目源码,比较好管理,可以知道那些是项目的,哪些是第三方库,可复用的

下载解压到lualib目录之后,就算安装完成了,下面来试用一下,更详细的可以到github上面看文档

conf/nginx.conf

worker_processes  1;

error_log logs/error.log notice;

events {
    worker_connections 1024;
}

http {
    lua_package_path "/Users/john/opensource/openresty-web-dev/demo9/lua/?.lua;/Users/john/opensource/openresty-web-dev/demo9/lualib/?.lua;/usr/local/openresty/lualib/?.lua";
    server {
        listen 80;
        server_name localhost;
        lua_code_cache off;

        location / {
            root lua; # 这个很重要,不然模板文件会找不到
            default_type "text/html; charset=utf-8";
            content_by_lua_file lualib/lite/mvc.lua;
        }

        location ~ ^/js/|^/css/|.html {
            root html;
        }
    }
}

lua/index.lua

local template = require "resty.template"

local _M = {}

function _M.index()
    local model = {title = "hello template", content = "

content

"} -- 1、外部模板文件 -- template.render("tpl/index.html", model) -- 2、内嵌模板代码 template.render([[ {{ title }} {* content *} ]], model) end return _M

lua/tpl/index.html



    
    {{title}}


    {* content *}

跟spring mvc 有点像,指定一个 view , model,然后就可以渲染了,模板语法有很多种,{{ 变量 }} 会进行转义,{ 不会转义 },{% lua 代码 %},跟jsp有点类似,但是很轻量,只有单个文件,更多用法可以到github上面看。

浏览器访问 http://localhost/index ,输出content

至此,服务端渲染就搞定了,已经可以开发一些常见的web应用,使用openresty来做前端,然后通过http访问后端的java,也可以在前端,直接访问mysql、redis,只不过mysql只能做一些简单的非事务操作,因为lua-resty-mysql这个库不支持事务,我在github上面问过春哥了,当然如果你直接调用存储过程,把事务放在过程里面控制的话也可以,现在你可以直接写同步的代码风格,就能获得高并发、低消耗,非堵塞等各种好处。

我们已经用openresty开发了pc版,还有微信版的web应用,已经运行几个月了,很稳定,上手也简单,开发的时候不用编译,直接启动一个nginx就搞定,部署的时候只需要10几M的内存,还可以用openresty做各种事情,高并发api、web防火墙,直接跑在nginx里面,简直爽歪歪,有机会跟大家分享。

示例代码 参见demo9部分

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

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

相关文章

  • 2014 杭JS大会 会议盛况与技术热点现场报道(直播)

    摘要:中国开发者的年度盛会中国开发者大会,于年月日在杭州举办了本年度的杭会议我们的和将为在现场为您带来现场的报道,一览大牛风采,直击技术热点。签到中第日的会议即将开幕以下是与参会者和与博文视点的作者们合影 中国JS开发者的年度盛会JS中国开发者大会,于2014年6月21日在杭州举办了本年度的杭JS会议! 我们SegmentFault的 @integ 和 @shamiao 将为在现场为您带来...

    caige 评论0 收藏0
  • 前端每周清单半年盘点之 React 与 ReactNative

    摘要:前端每周清单半年盘点之与篇前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点分为新闻热点开发教程工程实践深度阅读开源项目巅峰人生等栏目。与求同存异近日,宣布将的构建工具由迁移到,引发了很多开发者的讨论。 前端每周清单半年盘点之 React 与 ReactNative 篇 前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点;分为...

    Barry_Ng 评论0 收藏0
  • Spring体系常用项目一览

    摘要:的面向的异常遵从通用的异常层次结构。比如以前常用的框架,现在常用的框架包含许多项目,下面挑一些最常用的出来总结一下。状态是流程中事件发生的地点,在流程中通过转移的方式从一个状态到另一个状态,流程的当前状况称为流程数据。 如今做Java尤其是web几乎是避免不了和Spring打交道了,但是Spring是这样的大而全,新鲜名词不断产生,学起来给人一种凌乱的感觉,我就在这里总结一下,理顺头绪...

    OnlyLing 评论0 收藏0
  • 自学MVC看这里——全网最全ASP.NET MVC 教程汇总

    摘要:架构已深得人心,微软也不甘落后推出了。小编特意整理博客园乃至整个网络最具价值的技术原创文章,为想要学习技术的学习者提供一个整合学习入口。包括了项目和编辑器模板,同时和微软最新的支持将大幅提高效率。 MVC架构已深得人心,微软也不甘落后,推出了ASP.NET MVC。小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入...

    suosuopuo 评论0 收藏0
  • Android开源架构

    摘要:音乐团队分享数据绑定运行机制分析一个项目搞定所有主流架构单元测试一个项目搞定所有主流架构系列的第二个项目。代码开源,展示了的用法,以及如何使用进行测试,还有用框架对的进行单元测试。 Android 常用三方框架的学习 Android 常用三方框架的学习 likfe/eventbus3-intellij-plugin AS 最新可用 eventbus3 插件,欢迎品尝 简单的 MVP 模...

    hzc 评论0 收藏0

发表评论

0条评论

SimonMa

|高级讲师

TA的文章

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