node js TypeError:Object#<object>没有方法&#39; addListener&#39;

时间:2016-08-13 02:05:00

标签: javascript node.js

我正在开发一个项目,用于检测irc聊天中的传入消息,如果消息左上或右上,则会模拟相应的左上方或下方按键上的按键,这样我就可以连接到twich irc并直播2048板,让观众从聊天中玩游戏。我正在使用node.js与库&#34; irc&#34;和&#34; kbm-robot&#34;。 irc库和kbm-robot库在它们分开的时候工作得很好但是当我将两个库文件放在&#34; node_modules&#34;文件夹和组合代码,irc库停止工作。当我尝试执行代码时,我得到错误&#34; TypeError:对象#没有方法&#39; addListener&#39;&#34;。这是我到目前为止编写的代码:

#!/usr/bin/env node

var irc = require('./irc/lib/irc.js');

var client = new irc.Client('irc.twitch.tv', 'themakat', {
    channels: ["#themakat"],
    nick: "themakat",
    password: "oauth:(passkey)",
    sasl: true
});

var kbmrobot = require("kbm-robot");

function right() {
    kbmrobot.startJar();

    kbmrobot.press("right")
    .sleep(100)
    .release("right")
    .go()
    .then(kbmrobot.stopJar);
};

function left() {
    kbmrobot.startJar();

    kbmrobot.press("left")
    .sleep(100)
    .release("left")
    .go()
    .then(kbmrobot.stopJar);
};

function up() {
    kbmrobot.startJar();

    kbmrobot.press("up")
    .sleep(100)
    .release("up")
    .go()
    .then(kbmrobot.stopJar);
};

function down() {
    kbmrobot.startJar();

    kbmrobot.press("down")
    .sleep(100)
    .release("down")
    .go()
    .then(kbmrobot.stopJar);
};

up();

irc.addListener('message#themakat', function(from, message) {
    console.log('<%s> %s', from, message);
    if ('right' == message) {
        right();
        console.log('right');
}   else if ('left' == message) {
        left();
        console.log('left');
}   else if ('up' == message) {
        up();
        console.log('up');
}   else if ('down' == message) {
        down();
        console.log('down');
};
});

因为我只有13岁,所以我可能在解释我的情况时犯了一些愚蠢的错误。如果我有任何错误的解释,请纠正我,以便我知道以备将来参考。非常感谢你!

2 个答案:

答案 0 :(得分:0)

您需要将irc.addListener(更改为client.addListener(

希望这有帮助。

答案 1 :(得分:0)

您可能希望您的客户端而不是irc模块。

client.addlistener()
建议

或更多(因为它更清晰/更清洁)

client.on()

您也可以通过添加错误处理程序来处理错误。

client.on('error', function(err) { 
    console.log(err); 
});