Javascript 节点IRC Bot问题

Javascript 节点IRC Bot问题,javascript,node.js,irc,Javascript,Node.js,Irc,我遇到了节点irc模块的问题。我试过了,但它似乎没有我想要的信息。这是我的问题:当我打电话时: new irc.Client(“irc.freenode.net”、“BotName”、{channels:[“#bots”]}) 我会见了: /home/915Ninja/node_modules/irc/lib/irc.js:864 var channelName = channel.split(' ')[0]; ^ TypeError: C

我遇到了节点irc模块的问题。我试过了,但它似乎没有我想要的信息。这是我的问题:当我打电话时:

new irc.Client(“irc.freenode.net”、“BotName”、{channels:[“#bots”]})

我会见了:

/home/915Ninja/node_modules/irc/lib/irc.js:864
var channelName =  channel.split(' ')[0];
                           ^
TypeError: Cannot call method 'split' of undefined
    at Client.join (/home/915Ninja/node_modules/irc/lib/irc.js:864:32)
    at Object.<anonymous> (/home/915Ninja/irc/bot.js:8:5)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3`
注意:我在前面将其命名为BotName是泛型的

更新:我知道了

我调用了
bot.join(config.channels)
,我没有意识到
join()
接收的是数组而不是字符串。

irc.Client.join
需要字符串对象。当我调用
bot.join(config.channels)
时,我向它传递了一个字符串数组,而不是一个字符串。因此,它尝试拆分数组,其中
split()
接受字符串,而不是数组。因此,我可以用以下方法修复它:

/* Passing channels into constructor... */
var bot = new irc.Client(config.server, config.nick, {
  channels: config.channels //The whole array
});

/* Recursive joining... */
var bot = new irc.Client(config.server, config.nick);
for (var i = 0; i < config.channels.length; i++){
  bot.join(config.channels[i]); //Passing in a string in the array one at a time
}
/*递归联接*/
var bot=new irc.Client(config.server,config.nick);
对于(var i=0;i
您可以发布更多的代码吗?错误似乎不是因为节点irc,而是因为您的函数有问题。请转到源代码,查看未定义的内容,然后将其追溯到您的代码。看起来
config.channel
未定义。@KevinB我找到了,请参阅更新。答案在“更新:”。
/* Recursive joining... */
var bot = new irc.Client(config.server, config.nick);
for (var i = 0; i < config.channels.length; i++){
  bot.join(config.channels[i]); //Passing in a string in the array one at a time
}