我目前正在开发一个模块,该模块允许在Lua中轻松地实现类JS类。
我增加了扩展类的能力,但是我有两次扩展类的问题,这似乎是超级构造函数中的某种问题,它导致了递归调用,但是我似乎不知道bug是从哪里来的,任何帮助都是非常感谢的。
模块:
local ClassCreator = {}
ClassCreator.extends = {__extends = true}
local function modifyFnEnv(f, env)
local fEnv = getfenv(f)
for i,v in pairs(env) do fEnv[i] = v end
set
我尝试使用tarantool作为应用服务器,并希望从tarantool连接到mysql。
在lua中,我编写了一个函数:
local function mysql_data(query, limit)
local conn = mysql.connect({host = mysql_host, user = mysql_user, password = mysql_password, db = mysql_database})
local tuples = conn:execute(query, limit)
return tuples
end
但在日志中我看到:
我在树莓皮上有一个MySQL Db,IP:192.168.100.230。
我有一个NodeMCU (ESP8266) IP:192.168.100.150。
raspberry pi MySQL有以下用于开发的数据库:
Database: pythonProg
User: pythonUser
Pass: password123
Table: espTest
我试图让ESP8266使用LUA将一个温度(Integer)记录到Pi上的数据库中。
我必须测试连接的代码是:
-- Script to test the connection to a MySQL Db
mysql = require
我对luarocks很陌生,我只是试着安装luarepl。安装工作显然进行得很顺利:
$ luarocks install luarepl
Installing https://luarocks.org/luarepl-0.8-1.rockspec...
Using https://luarocks.org/luarepl-0.8-1.rockspec... switching to 'build' mode
Updating manifest for /Users/me/.luarocks/lib/luarocks/rocks-5.1
luarepl 0.8-1 is now
我在这方面找到了一些参考资料,但我无法使它们发挥作用。我有一个带有mysql和mysql代理的Debian盒。我正在用LUA脚本拦截SQL查询。
function read_query(packet)
if packet:byte() ~= proxy.COM_QUERY then
print("error read (COM_QUERY)")
end
local query = packet:sub(2)
print ("query : " .. query )
如何列出Lua源文件中包含的所有函数?
例如,我有一个包含以下内容的fn.lua
function test1()
print("Test 1")
end
function test2()
print("Test 2")
end
我希望能够从另一个Lua脚本中显示这些函数名(test1,test2)。
目前我能想到的唯一方法是使用require包含文件,然后列出_G中的函数-但这也将包括所有标准的Lua函数。
当然,我可以使用字符串搜索函数手动解析文件,但这对我来说似乎不是很好!
这最终将成为一个过程的一部分,该过程允许开发人员
我下载了mysql-async,essentialmode,esplugin_mysql,es_admin2,async,它显示了这个错误。 是关于什么的?请帮助我,我正在尝试创建我的服务器。 [ERROR] connect ETIMEDOUT
Connecting: kworthbati
Sending heartbeat to live-internal.fivem.net:30110
[ERROR] [MySQL] [esplugin_mysql] An error happens on MySQL for query
"SELECT
我正在使用redis和mysql为openresty项目,我试图用init_worker_by_lua初始化数据库,但我收到了下面的错误。
我的db.lua代码:
local mysql = require("resty.mysql") -- Introduce mysql
local redis = require("resty.redis") -- Introduce Redis
local db, err = mysql:new()
if not db
系统配置:
OS: Windows 7 x64
lua -v
Lua 5.1.4
luarocks -v
2.2.0beta1
luarocks list
luasocket
3.0rc1-1 (installed) - C:/Program Files (x86)/LuaRocks/systree/lib/luarocks/rocks
luarocks show luasocket
LuaSocket 3.0rc1-1 - Network support for the Lua language
LuaSocket is a Lua extensi
我有一个用来读取Lua的类,我想让它可以一次加载多个脚本,而不会发生冲突,也就是说,当第一个脚本执行时,Lua变量的值被保存在第一个脚本中。 我希望程序能输出它- print = 123
print = Hi 0
Result = 3
print = Hi 1
Result = 3
print = Hi 2
Result = 3
print = Hi 3
Result = 3
print = Hi 4
Result = 3
print = Hi 5
Result = 3
print = Hi 6
Result = 3
print = Hi 7
Result = 3
print = 123
我在Windows上使用ZeroBrane远程调试我在linux上的程序。
我的程序从c++调用lua。
但是不能命中断点。
ZeroBrane输出如下:
Debugger server started at AGOC3-706:8172.
[192.168.88.238:47444] Debugger sent (command): basedir D:\WorkSpace\sichuan\branches\v1.0.1-2017-07-12\lua\
New base directory is D:/WorkSpace/sichuan/branches/v1.0.1-2017-07-12/
我对Lua很陌生。我使用将一个JS文件编译为Lua5.2
castl -o script.js
这创建了一个名为script.js.lua.的文件这是我的新lua文件的第一行:
local _ENV = require("castl.runtime");
我试着用lua52 script.js.lua运行该文件,但是我得到了以下错误:
C:\Program Files\lua-5.2.4_Win64_bin\lua52.exe: script.js.lua:1: module 'castl.runtime' not found:
no field
我尝试运行以下代码:
#!/usr/bin/env wsapi.cgi
require("lib/request") -- wsapi lib
require("lib/response")
require("io")
module("loadHtml", package.seeall)
---This function generates a response for the WSAPI calls that need to GET a file
function run(wsapi_env)
--check th
我正在为一个多人游戏开发一个服务器,我想给每个玩家自己的Lua线程,我想用一些独特的全局填充,例如玩家的名字和id。基本上,我希望能够从主机应用程序中设置线程局部变量,而无需在我正在编写的实际脚本中添加任何代码,然后只要我调用函数,就可以在play会话期间使用这些代码。这和Lua有可能吗?
// Example of how it naturally doesn't work
var L = Lua.LuaLNewState();
Lua.LuaRegister(L, "print", WriteLine);
dostring(L, "print('h
我正在改进我们在中为机器人玩家处理Lua脚本的方式。目前,每个机器人都有自己的L实例,我们试图通过交换环境表来让它们共享一个。注意,机器人可能是完全不同的脚本。
我意识到这个方法在Lua5.2中是不推荐的,但是我们目前使用Lua,它仍然使用Lua5.1。这个游戏是用C++写的。
所以..。
首先,我们创建一个环境,并称之为:
// Create a table with room for 0 array and 1 non-array elements
lua_createtable(L, 0, 1); // -- tab
// Set the globals
在Lua5.1中,可以将环境表与用户数据关联起来。这允许我们将“字段”添加到单个用户数据中。
显而易见的方法是在创建userdata时创建这个环境表,可能是空表。但是,在我的应用程序中,会有很多用户数据不一定需要这个环境表,而且它们很快就会出现。我不希望创建这么多不会被使用的临时空表的开销。
因此,相反,我只想在检测到userdata还没有创建一个环境表时才创建环境表。
问题是,在Lua5.1中,默认环境表不是nil。它被认为是全球的桌子,_G (我想知道这到底有什么用)。因此,据推测,我会通过以下操作来测试一个未初始化的用户数据:
/* 'index' is where my
require "utils.lua"
stdin:1: module 'utils.lua' not found:
no field package.preload['utils.lua']
no file 'D:\blizzard\Projects\Lua'
no file '.\utils\lua.dll'
no file 'D:\blizzard\Projects\Lua\utils\lua.dll'
no fi
我正在尝试将mysql-proxy-0.8.4.tar.gz编译并打包到rpm中。我按照说明来构建
[root@localhost mysql-proxy]# rpmbuild -ta --clean mysql-proxy-0.8.4.tar.gz
我得到了这个错误
checking which pkg-config file to use to find Lua... configure: error: MySQL Proxy can't be built using --without-lua, lua 5.1 is required
error: Bad exit status
我刚刚下载了mysql-proxy并创建了这个脚本lua (可以在Mysql文档中找到):
function read_query(packet)
if string.byte(packet) == proxy.COM_QUERY then
print("QUERY: " .. string.sub(packet, 2))
end
end
这是我正在使用的命令行:
mysql-proxy -P localhost:1234 -b localhost:3306 --proxy-lua-script=profile.lua --plugins=proxy
当