Я создал Discord бота на JS, но мне выдает ошибку

По идее при написании !add название фильма бот должен добавлять название в массив, но проблема в том, что при делении подстроки !add возникает ошибка

function ran(){
    let num = Math.random() * 3
    let num1 = num.toFixed()
    console.log(num1)
}

//functions

const Discord = require('discord.js');
const bot = new Discord.Client();

let films = []

bot.on('ready', () => {
    console.log('Запустился бот ' + bot.user.tag);
})

bot.on('message', message => {
    if(message.content == '!help'){
        message.channel.send('Вот список команд:' + '!add название фильма - добавляет фильм в список желаемого');}
    else if(message.content.indexOf('!add') == 0){
        let msg = message.content
        function add (msg){
            let message = msg.substring(0, 4)
            message.channel.send = message
        }
        add()
    }
    
    
})
bot.login('токен бота');

Ответы (1 шт):

Автор решения: A_Br2H

Я проверил ваш код, и я понял в чём проблема. Когда вы вызываете функцию add, вы не указываете значение аргумента. Попробуйте add(msg) и ваш код по сути должен работать. Либо же, вы можете убрать аргумент msg из вашей функции и ваш код тоже заработает.

Когда вы указываете в функции параметр msg, то внутри функции код выполняется только с тем значением, который вы указали. Пример:

let message = {
    content: "!add Sponge Bob: In escape."
}
let msg = message.content
function Foo(msg) {
    message.channel.send(msg) // Выведет "Other string.", а не "!add Sponge Bob: In escape."
}

Foo("Other string.")

Можно даже:

let message = {
    content: "!add Sponge Bob: In escape."
}
let msg = message.content

function Foo() {
    message.channel.send(msg) // Выведет "!add Sponge Bob: In escape."

Foo()
→ Ссылка