如何解决“脚本错误(事件聊天):TypeError:无法访问未定义的成员'indexOf'”

时间:2019-06-16 20:46:51

标签: javascript

我发现了一个我想开始工作的teampeak机器人的废弃脚本。我从来没有真正使用过javascript,因此我希望那里的人能够为我提供帮助。

当我尝试运行脚本时,实例日志中出现以下错误。

“脚本(事件聊天)中的错误:TypeError:无法访问cleverbot.js:76:13上未定义的成员'indexOf'”

我尝试与作者联系,并在找到该脚本的论坛上寻求帮助。

event.on('chat', function(ev) {
    var client = ev.clientId;        
    var mode = ev.mode;

    if (ev.mode == 0 || ev.mode == 3) return;
    if (ev.msg.indexOf("Cleverbot,") === 0 || ev.msg.indexOf("@cleverbot") === 0) {
        var question = ev.msg.substring(11, ev.msg.length);
        sinusbot.http({
            "method": "POST", 
            "url": "https://cleverbot.io/1.0/ask", 
            "timeout": 60000,
            "body": "user=" + apiuser + "&key=" + apikey +
                "&nick=" + sinusbot.getBotId() + "&text=" + encodeURI(question),
            "headers": {"Content-Type": "application/x-www-form-urlencoded"}
        }, function (error, response) {
            if (error) {
                sinusbot.log(error);
                return;
            }

            var data = JSON.parse(response.data);                
            if (response.statusCode != 200) {
                sinusbot.chatChannel(data.status);
                return;
            }

            var response = data.response;
            if (mode == 1) {
                sinusbot.chatPrivate(client, response);
            } 
            else if (mode == 2) {
                sinusbot.say(response, lang);
            }
        });
    }
});

1 个答案:

答案 0 :(得分:0)

'ev'参数没有此类msg属性,因此indexOf失败(无字符串)

...
ev.msg.indexOf
...

尝试调试代码以再次检查为什么会发生