Ошибка ссылки: Недопустимая левая сторона при назначении в discord.js коммандос

#discord.js #referenceerror #commando

Вопрос:

Используя код команды WOK Thanks, который я клонировал из репозитория и немного отредактировал, но я получаю команду ReferenceError: Invalid left-hand side in assignment from commando в самом диссонансе, когда набираю команду.

Код:

 const Commando = require('discord.js-commando')
const Discord = require('discord.js')
const thanksSchema = require('@schemas/thanks-schema')

module.exports = class ThanksCommand extends Commando.Command {
    constructor(client) {
        super(client, {
            name: 'thanks',
            group: 'thanks',
            memberName: 'thanks',
            description: 'Thanks a staff member for their help',
        })
    }

    async run(message) {
        const target = message.mentions.users.first()
        if (!target) {
            const noPingThanksEmbed = new Discord.MessageEmbed()
            .setTitle('ERROR: Invalid user provided')
            .setDescription('Please tag a valid user')
            .setColor('#ff0000')
            message.channel.send(noPingThanksEmbed)
            return
        }

        const { guild } = message
        const guildId = guild.id
        const targetId = target.id
        const authorId = message.author.id
        const now = new Date()

        if (targetId === authorId) {
            const thankSelfEmbed = new Discord.MessageEmbed()
            .setTitle('ERROR: Invalid user provided')
            .setDescription('You cannot thank yourself')
            .setFooter('LOL YOU THOUGHT')
            .setColor('#ff0000')
            message.channel.send(thankSelfEmbed)
            return
        }

        const authorData = await thanksSchema.findOne({
            userId: authorId,
            guildId,
        })

        if (authorData amp;amp; authorData.lastGave) {
            const then = new Date(authorData.lastGave)

            const diff = now.getTime() = then.getTime()
            const diffHours = Math.round(diff / (1000 * 60 * 60))
            const hours = 24

            if (diffHours <= hours) {
                const cooldownThankEmbed = new Discord.MessageEmbed()
                .setTitle('ERROR: User on cooldown')
                .setDescription(`You have already thanked someone within the last ${hours} hours`)
                .setColor('#ff0000')
                message.channel.send(cooldownThankEmbed)
                return
            }
        }

        await thanksSchema.findOneAndUpdate({
            userId: authorId,
            guildId,
        }, {
            userId: authorId,
            guildId,
            lastGave: now,
        }, {
            upsert: true,
        })

        const result = await thanksSchema.findOneAndUpdate({
            userId: targetId,
            guildId,
        }, {
            userId: targetId,
            guildId,
            $inc: {
                received: 1,
            }
        }, {
            upsert: true,
            new: true,
        })

        const amount = result.received

        const thanksEmbed = new Discord.MessageEmbed()
        .setTitle('SUCCESS')
        .setDescription(`<@${authorId}> has thanked <@${targetId}!nnThey now have ${amount} thanks`)
        .setColor('#1be730')
        message.channel.send(thanksEmbed)
    }
}
 

Вот схема:

 const mongoose = require('mongoose')

const reqString = {
    type: String,
    required: true,
}

const thanksSchema = mongoose.Schema({
    userId: reqString,
    guildId: reqString,
    received: {
        type: Number,
        default: 0
    },
    lastGave: Date
})

module.exports = mongoose.model('thanks', thanksSchema)
 

Код не возвращает никаких ошибок в самой консоли, просто разлад, и бот продолжает работать как ни в чем не бывало, но команда не работает, потому что процесс остановлен. Я не смог найти никаких явных проблем с операторами, чего я и ожидал от этой ошибки…

Ответ №1:

Ошибка не в Разногласиях.JS или коммандос, это из этой строки в вашей run() функции

 const diff = now.getTime() = then.getTime()
 

Ты это имел в виду?

 const diff = now.getTime() - then.getTime()
 

При возникновении ошибки найдите путь к файлу и строку, в которой возникает ошибка

Комментарии:

1. Под Commando я подразумевал, что ошибка была отправлена в саму Discord, поэтому она не указывала путь к файлу и строку. Я думаю, что я опечатал эту строку, так что спасибо за это, это действительно была ошибка.