首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

如何扩展一个OpenResty模块

因为 Lua 本身并没有继承之类的语法,所以我们不能通过 OOP 的套路来扩展模块,不过实际上对于 Lua 来说,扩展一个模块有更简单的方法,下面我们以 lua-resty-string 模块中的 aes...缺省是激活了填充的,所以一旦我们需要自定义填充方法,那么就需要关闭缺省的填充行为,此时 resty.aes 无能为力。...通过查看 resty.aes 源代码,我们知道它是通过 ffi 调用 OpenSSL 来实现相关功能的,所以我们只需要依葫芦画瓢扩展 resty.aes 即可,不过最好不要修改 resty.aes 源代码...,否则日后的升级会变得麻烦,推荐新建一个模块,比如本例中的 resty.aes_with_padding: local aes = require "resty.aes" local ffi = require...的地方改成 resty.aes_with_padding,然后代码里通过调用新创建的 set_padding 方法来控制开启还是关闭填充。

39620

OpenResty 101

如果用 lua-resty-redis 查询一个不存在的 key,那么返回的是 ngx.null,而不是 nil,这是因为 nil 在 lua 里有特殊的意义。...Github 上 lua-resty-* 相关的项目最好也都留意一下,特别是如下几个公司的账户: upyun kong cloudflare 赞扬下 upyun,作为国内技术流公司,对社区贡献良多。...此外,再推荐几个组织或个人的账户(排名不分先后): iresty:代表作 lua-resty-etcd 等 timebug:代表作 lua-resty-redis-ratelimit 等 tokers:...代表作 lua-resty-http2 等 huangnauh:代表作 lua-resty-consul 等 doujiang24:代表作 lua-resty-kafka 等 spacewander:代表作...lua-resty-rsa 等 smallfish:代表作 lua-resty-beanstalkd 等 bungle:代表作 lua-resty-template 等 ledgetech:代表作 lua-resty-http

92530
领券