当前位置:网站首页 > Lua脚本开发 > 正文

lua可视化脚本编辑器_lua脚本怎么运行

一、nginx+lua 脚本开发的基本配置。

1,nginx转发请求到lua 的配置。

    在安装了nginx之后,nginx怎么将请求转发给lua脚本。在nginx配置中加上这句代码,就会将请求转发到index.lua上。

location / {
        default_type text/html;
        content_by_lua_file '/home/wwwroot/lua/index.lua';
    }

2,lua脚本里怎么获取用户发送的get/post请求的数据

if ngx.var.request_method == "POST" then ngx.req.read_body()   args = ngx.req.get_post_args() else   args = ngx.req.get_uri_args() end

3,在lua脚本中怎么响应输出内容

ngx.say('invalid request!') ngx.exit(200) --可在nginx中停止脚本,并返回200响应状态码

4,提取请求URL里的uri,一般需要做路由用

local uri = ngx.var.uri

5,文件加载路径

package.path = '/home/www/library/?.lua;'

6,lua中的module加载方法

    如果指定了package.path,则执行加载时会首先调用这个路径判断是否有module

function load_module(module_name) local m = nil local _, err = pcall(function(mod) m = require(mod) end, module_name) return m, err end

    此处要注意,如果module文件里带有module(..),则require的返回值是boolean值true,而不是被包含进来的table,如果module文件里不含有module(..),而是使用一个table定义,则需要在最后调用return 当前table。

二、Lua开中的其它一些简单的知识点笔记:

  • 1,直接运行lua,显示lua版本,退出lua命令:os.exit(); 或者ctrl+z(linux:ctrl+d) 后enter
  • 2,可使用lua -i 先进入解析器,然后使用dofile动态加载文件执行
  • 3,lua a.lua a b c 在程序中使用使用lua[1]取值a,前后类推
  • 4,lua将false和nil视为假,其它都视为真(注意0和空字符串都为真)
  • 5,lua中10=='10'总是false,必须使用tonumber,tostring进行转换。
  • 6,lua里的table即数组,通常以1作为索引的起始值。
  • 7,lua里的%运算,小数对1求%则为小数部分。
  • 8,lua里的算术运算符号,不等于的写法~=,而不是!=
  • 9,lua里的(a and b )or c 如b为真则等价于C中的 a?b:c;

 三、 Nginx + lua 做WEB开发的代码实例

    最近想用lua+nginx做个web站点,因为想再熟悉一下lua程序,所以就一些很简单的几个页面,lua本来不是用来做web前端开发的,所以很多WEB上要的工具没有,需要自己造轮子。然后加载模板也就是个字符串替换,目前网站已经下线了,其功能就是每天自动抓取中国天气网的数据,存入redis,按温度排名,分省份,以及分城市。

lua有一个开源的扩展:lua-resty-http,github地址:https://github.com/pintsized/lua-resty-http

    用起来很方便,此次用了其两个功能,一个是单个页面抓取。二是多页面并发抓取。速度很快。单页面抓取时使用httpc:request,多页面同时并发抓取使用httpc:request_pipeline。速度很快。

local responses = httpc:request_pipeline({ {path = \"/b\"}, {path = \"/c\"}, {path = \"/d\"} ... }

    单页面抓取时比较好处理,不过多页面,另外使用了一个扩展的xml解析程序:https://github.com/Cluain/Lua-Simple-XML-Parser  使用这个的时候一定要多注意对于多个相同子元素的解析结果处理:要使用如下。

xml:children()[1]:name() == \"test\" xml:children()[1]:children()[2]:value() == \"eight\" xml:properties()[1] == {name = \"one\", value = \"two\"}

    我使用的时候就碰到报错:lua:68: attempt to index local \'citys\' (a function value) 都是因为对解析结果的误认为造成的。使用上面的children()方法来处理就OK。附个页面截图:

到此这篇lua可视化脚本编辑器_lua脚本怎么运行的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • redisson lua脚本_lua脚本解密工具2024-11-17 14:09:05
  • Redis八大附加功能:慢查询分析+Redis Shell+PiPline+事务与Lua脚本+Bitmaps+HyperLogLog+发布订阅+GEO2024-11-17 14:09:05
  • lua脚本开发工具_lua脚本是什么2024-11-17 14:09:05
  • openresty lua教程_如何使用脚本2024-11-17 14:09:05
  • nginx lua waf_linux嵌入式软件开发2024-11-17 14:09:05
  • lua脚本语言主要用来做什么_lua脚本语言入门2024-11-17 14:09:05
  • nginx lua proxy_pass_lua脚本制作工具2024-11-17 14:09:05
  • lua 安装_lua编程软件2024-11-17 14:09:05
  • Lua脚本简单理解_lua脚本语言入门2024-11-17 14:09:05
  • Lua脚本教程_脚本编写2024-11-17 14:09:05
  • 全屏图片