我正在尝试使用 Electron 和 tmi.js 存储库制作 Twitch Bot,我希望程序将数据(例如用户名、OAuth 令牌等)保存在 .json 文件中。当我重新打开我的应用程序时,它会立即读取文件并创建一个包含所有设置的选项对象(用于twitch
api)。一切正常,但是来自 tmi.js 存储库的 client.on 事件给了我一个错误:“无法读取未定义的属性 'on'”。
读取文件代码:
fs.readFile("connectionSettings.json", (err, data) => {
if (err){
console.log(err);
} else {
channelData = JSON.parse(data);
options = {
options: {
debug: true
},
connection: {
cluster: "aws",
reconnect: true
},
identity: {
username: channelData[1],
password: channelData[2]
},
channels:[channelData[0]]
};
client = new tmi.client(options);
client.connect();
}
})
聊天事件中的客户端:
client.on("chat", function(channel, userstate, message, self) {
mainWindow.webContents.send("message:add", userstate.username, message);
console.log("message");
})
客户端变量在文件顶部用“let client;”声明。
但是如果我调用这样的函数:
function sendMessage(msg) {
client.say(options.channels[0].replace("#",""), msg)
}
一切正常,所以我假设底部的聊天事件客户端在读取 .json 文件并设置变量之前以某种方式被调用。
有什么想法可以解决这个问题吗?