Node.js ReferenceError:消息未定义,但已定义/无法读取属性';角色';未定义的

Node.js ReferenceError:消息未定义,但已定义/无法读取属性';角色';未定义的,node.js,Node.js,嘿,所以我有一个小问题,我有点崩溃:悲伤: my bot saying ReferenceError:消息未定义,但其定义是这样的吗 const Discord = require("discord.js"); const config = require("./../config.json"); const moment = require('moment'); const chalk = require('chalk'); let prefix = config.prefix; cons

嘿,所以我有一个小问题,我有点崩溃:悲伤: my bot saying ReferenceError:消息未定义,但其定义是这样的吗

const Discord = require("discord.js");
const config = require("./../config.json");
const moment = require('moment');
const chalk = require('chalk');
let prefix = config.prefix;


console.log(chalk.red(`[${moment().format(`YYYY-MM-DD HH:mm:ss`)}] - {${__filename}}:`), chalk.yellow(`Commande: a été utilisé par ${message.member.user.id} dans le channel #${message .channel.name}`));

module.exports.run = async (bot, message, args) => {
    await message.delete();
        const delay = (msec) => new Promise((resolve) => setTimeout(resolve, msec));
        let banned = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
        if(!banned) return message.reply(`Mauvaise utilisation: \`${prefix}ban @user raison\``);
        if(banned.id === message.author.id) return message.reply("Argument incorrect: `Cet utilisateur est impossible a bannir`");
        if(!message.member.hasPermission("BAN_MEMBERS")) return message.reply("Permission insufisante: `BAN_MEMBERS`");
        let banreason = args.join(" ").slice(22);
        if(!banreason) return message.reply(`Mauvaise utilisation: \`${prefix}ban @user raison\``);
        if(banned.hasPermission("ADMINISTRATOR")) return message.reply("Argument incorrect: `Cet utilisateur est impossible a bannir`");

        banned.send(`Vous avez été banni de  **${message.channel.guild.name}** pour la raison suivante: **${banreason}**`);
        await delay(500);
        message.reply("User banni!");
        message.guild.member(banned).ban(banreason);
        return;
    }

module.exports.help = {
    name: "ban"
}   

Idk为什么它不工作。。。 你能帮我吗

Thx

更新:

所以我重写了一个新代码,但这次我得到了这个东西:

大宗报价 TypeError:无法读取未定义的属性“角色” 在C:\Users\maxim\OneDrive\projetRio\Quinella.js:282:22 在Map.every(C:\Users\maxim\node\u modules\discord.js\src\util\Collection.js:372:12) 在客户端。(C:\Users\maxim\OneDrive\projetRio\Quinella.js:281:21) 在Client.emit(events.js:223:5) 在Guild.\u updateMember(C:\Users\maxim\node\u modules\discord.js\src\structures\Guild.js:1566:19) 在GuildMemberUpdateHandler.handle(C:\Users\maxim\node\u modules\discord.js\src\client\websocket\packets\handlers\GuildMemberUpdate.js:13:25) 在WebSocketPacketManager.handle(C:\Users\maxim\node\u modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:108:65) 在WebSocketConnection.onPacket(C:\Users\maxim\node\u modules\discord.js\src\client\websocket\WebSocketConnection.js:336:35) 在WebSocketConnection.onMessage(C:\Users\maxim\node\u modules\discord.js\src\client\websocket\WebSocketConnection.js:299:17) 在WebSocket.onMessage(C:\Users\maxim\node\u modules\discord.js\node\u modules\ws\lib\event target.js:120:16)

关于此代码:

const Discord = require("discord.js");
const config = require("./config.json");
const bot = new Discord.Client();
const fs = require("fs");
let prefix = config.prefix;
bot.commands = new Discord.Collection();



fs.readdir("./commands/", (err, files) => {

  if(err) console.log(err);

  let jsfile = files.filter(f => f.split(".").pop() === "js");

  if(jsfile.length <= 0){
    console.log("Impossible de trouver une ou des commandes !");
    return;
  }

  jsfile.forEach((f, i) => {
    let props = require(`./commands/${f}`);
    console.log(`${f} chargée!`);
    bot.commands.set(props.help.name, props);
  });
});



fs.readdir("./commands/fun/", (err, files) => {

  if(err) console.log(err);

  let jsfile = files.filter(f => f.split(".").pop() === "js");

  if(jsfile.length <= 0){
    console.log("Impossible de trouver une ou des commandes !");
    return;
  }

  jsfile.forEach((f, i) => {
    let props = require(`./commands/fun/${f}`);
    console.log(`${f} chargée!`);
    bot.commands.set(props.help.name, props);
  });
});



fs.readdir("./commands/general/", (err, files) => {

  if(err) console.log(err);

  let jsfile = files.filter(f => f.split(".").pop() === "js");

  if(jsfile.length <= 0){
    console.log("Impossible de trouver une ou des commandes !");
    return;
  }

  jsfile.forEach((f, i) =>{
    let props = require(`./commands/general/${f}`);
    console.log(`${f} chargée!`);
    bot.commands.set(props.help.name, props);
  });
});



fs.readdir("./commands/moderation/", (err, files) => {

  if(err) console.log(err);

  let jsfile = files.filter(f => f.split(".").pop() === "js");

  if(jsfile.length <= 0){
    console.log("Impossible de trouver une ou des commandes !");
    return;
  }

  jsfile.forEach((f, i) =>{
    let props = require(`./commands/moderation/${f}`);
    console.log(`${f} chargée!`);
    bot.commands.set(props.help.name, props);
  });
});



fs.readdir("./commands/nsfw/", (err, files) => {

  if(err) console.log(err);

  let jsfile = files.filter(f => f.split(".").pop() === "js");

  if(jsfile.length <= 0){
    console.log("Impossible de trouver une ou des commandes !");
    return;
  }

  jsfile.forEach((f, i) =>{
    let props = require(`./commands/nsfw/${f}`);
    console.log(`${f} chargée!`);
    bot.commands.set(props.help.name, props);
  });
});





bot.on("ready", () => {
  console.log(`${bot.user.username} id du bot:${bot.user.id} Crée le:${bot.user.createdAt}`);
  bot.user.setPresence({ game: { name: `https://www.eurotrans.me/ | ${prefix}help` }, status: 'dnd' });
});




bot.on("message", async message => {
  //a little bit of data parsing/general checks
  if(message.author.bot) return;
  if(message.channel.type === 'dm') return;
  if(!message.content.startsWith(prefix)) return;
  let content = message.content.split(" ");
  let command = content[0].toLowerCase();
  let args = content.slice(1);


  //checks if message contains a command and runs it
  let commandfile = bot.commands.get(command.slice(prefix.length));
  if(commandfile) commandfile.run(bot,message,args);
});




const VERSION = '0.1.1';
const CHANNEL = 'log';


bot.on('ready', function() {
    console.log("[META][INFO] Connecter à L'API de Discord ");
});

//bot disconnected from Discord
bot.on('disconnected', function() {
    console.log("[META][WARN] Deconnecter de L'API de Discord. Attempting to reconnected...");
});

//warning from Discord.js
bot.on('warn', function(msg) {
    console.log('[META][WARN] ' + msg);
});

//error from Discord.js
bot.on('error', function(err) {
    console.log('[META][ERROR] ' + err.message);
    process.exit(1);
});

//message received
bot.on('message', function(message) {
    if(message.author.id != bot.user.id) {
        if (message.channel.type == 'text')
            console.log('[' + message.guild.name + '][#' + message.channel.name + '][MSG] ' + message.author.username +
                '#' + message.author.discriminator + ': ' + formatConsoleMessage(message));
        else if (message.channel.type == 'dm')
            message.channel.sendMessage('Beep boop! Sorry, I can\'t respond to direct messages. ');
        else if (message.channel.type == 'group')
            message.channel.sendMessage('Beep boop! Sorry, I can\'t log group messages.');
    }
});

//message deleted
bot.on('messageDelete', function(message) {

    if(message.channel.type == 'text') {

        //log to console
        console.log('[' + message.guild.name + '][#' + message.channel.name + '][DELMSG] ' + message.author.username +
            '#' + message.author.discriminator + ': ' + formatConsoleMessage(message));

        //post in the guild's log channel
        var log = message.guild.channels.find('name', CHANNEL);
        if (log != null)
            log.sendMessage('**[Message Deleted]** ' + message.author + ': ' + message.cleanContent);

    }

});

//message update
bot.on('messageUpdate', function(oldMessage, newMessage) {

    if (newMessage.channel.type == 'text' && newMessage.cleanContent != oldMessage.cleanContent) {

        //log to console
        console.log('[' + newMessage.guild.name + '][#' + newMessage.channel.name + '][UPDMSG] ' +
            newMessage.author.username + '#' + newMessage.author.discriminator + ':\n\tOLDMSG: ' +
            formatConsoleMessage(oldMessage) + '\n\tNEWMSG: ' + formatConsoleMessage(newMessage));

        //post in the guild's log channel
        var log = newMessage.guild.channels.find('name', CHANNEL);
        if (log != null)
            log.sendMessage('**[Message Updated]** *' + newMessage.author + '*:\n*Old Message*: ' + oldMessage.cleanContent +
                '\n*New Message*: ' + newMessage.cleanContent);
    }

});

//user has been banned
bot.on('guildBanAdd', function(guild, user) {

    //log to console
    console.log('[' + guild.name + '][BAN] ' + user.username + '#' + user.discriminator);

    //post in the guild's log channel
    var log = guild.channels.find('name', CHANNEL);
    if (log != null)
        log.sendMessage('**[Banned]** ' + user);

});

//user has been unbanned
bot.on('guildBanRemove', function(guild, user) {

    //log to console
    console.log('[' + guild.name + '][UNBAN] ' + user.username + '#' + user.discriminator);

    //post in the guild's log channel
    var log = guild.channels.find('name', CHANNEL);
    if (log != null)
        log.sendMessage('**[Unbanned]** ' + user);

});

//user has joined a guild
bot.on('guildMemberAdd', function(guild, user) {

    //log to console
    console.log('[' + guild.name + '][JOIN] ' + user.username + '#' + user.discriminator);

    //post in the guild's log channel
    var log = guild.channels.find('name', CHANNEL);
    if (log != null) {
        log.sendMessage('**[Joined]** ' + user);
    }

});

//user has joined a guild
bot.on('guildMemberRemove', function(guild, user) {

    //log to console
    console.log('[' + guild.name + '][LEAVE] ' + user.username + '#' + user.discriminator);

    //post in the guild's log channel
    var log = guild.channels.find('name', CHANNEL);
    if (log != null)
        log.sendMessage('**[Left]** ' + user);

});

//user in a guild has been updated
bot.on('guildMemberUpdate', function(guild, oldMember, newMember) {

    //declare changes
    var Changes = {
        unknown: 0,
        addedRole: 1,
        removedRole: 2,
        username: 3,
        nickname: 4,
        avatar: 5
    };
    var change = Changes.unknown;

    //check if roles were removed
    var removedRole = '';
    oldMember.roles.every(function(value) {
        if(newMember.roles.find('id', value.id) == null) {
            change = Changes.removedRole;
            removedRole = value.name;
        }
    });

    //check if roles were added
    var addedRole = '';
    newMember.roles.every(function(value) {
        if(oldMember.roles.find('id', value.id) == null) {
            change = Changes.addedRole;
            addedRole = value.name;
        }
    });

    //check if username changed
    if(newMember.user.username != oldMember.user.username)
        change = Changes.username;

    //check if nickname changed
    if(newMember.nickname != oldMember.nickname)
        change = Changes.nickname;

    //check if avatar changed
    if(newMember.user.avatarURL != oldMember.user.avatarURL)
        change = Changes.avatar;

    //log to console
    switch(change) {
        case Changes.unknown:
            console.log('[' + guild.name + '][UPDUSR] ' + newMember.user.username + '#' + newMember.user.discriminator);
            break;
        case Changes.addedRole:
            console.log('[' + guild.name + '][ADDROLE] ' + newMember.user.username +'#' +  newMember.user.discriminator +
                ': ' + addedRole);
            break;
        case Changes.removedRole:
            console.log('[' + guild.name + '][REMROLE] ' + newMember.user.username + '#' + newMember.user.discriminator +
                ': ' + removedRole);
            break;
        case Changes.username:
            console.log('[' + guild.name + '][UPDUSRNM] ' + oldMember.user.username + '#' + oldMember.user.discriminator +
                ' is now ' + newMember.user.username + '#' + newMember.user.discriminator);
            break;
        case Changes.nickname:
            console.log('[' + guild.name + '][UPDUSRNK] ' + newMember.user.username + '#' + newMember.user.discriminator +
                (oldMember.nickname != null ? ' (' + oldMember.nickname + ')' : '') +
                (newMember.nickname != null ? ' is now ' + newMember.nickname : ' no longer has a nickname.'));
            break;
        case Changes.avatar:
            console.log('[' + guild.name + '][UPDAVT] ' + newMember.user.username + '#' + newMember.user.discriminator);
            break;
    }


    //post in the guild's log channel
    var log = guild.channels.find('name', CHANNEL);
    if (log != null) {
        switch(change) {
            case Changes.unknown:
                log.sendMessage('**[User Update]** ' + newMember);
                break;
            case Changes.addedRole:
                log.sendMessage('**[User Role Added]** ' + newMember + ': ' + addedRole);
                break;
            case Changes.removedRole:
                log.sendMessage('**[User Role Removed]** ' + newMember + ': ' + removedRole);
                break;
            case Changes.username:
                log.sendMessage('**[User Username Changed]** ' + newMember + ': Username changed from ' +
                    oldMember.user.username + '#' + oldMember.user.discriminator + ' to ' +
                    newMember.user.username + '#' + newMember.user.discriminator);
                break;
            case Changes.nickname:
                log.sendMessage('**[User Nickname Changed]** ' + newMember + ': ' +
                    (oldMember.nickname != null ? 'Changed nickname from ' + oldMember.nickname +
                        + newMember.nickname : 'Set nickname') + ' to ' +
                    (newMember.nickname != null ? newMember.nickname + '.' : 'original username.'));
                break;
            case Changes.avatar:
                log.sendMessage('**[User Avatar Changed]** ' + newMember);
                break;
        }
    }

});

//
// Startup Sequence
//
console.log('Logger Serveur' + VERSION);


console.log('[META][INFO] Started Logger Serveur' + VERSION);


function formatConsoleMessage(message) {
    return message.cleanContent.replace(new RegExp('\n', 'g'), '\n\t');
}



const active = new Map();


let ops = {
    active: active
};


bot.login("NjEzMDkwNzAwNTg1NzMwMDU0.XokdQw.Dfr4pd7glH0PsHr2BBb-");
const Discord=require(“Discord.js”);
const config=require(“./config.json”);
const bot=new Discord.Client();
常数fs=要求(“fs”);
让prefix=config.prefix;
bot.commands=new Discord.Collection();
fs.readdir(“./commands/”,(错误,文件)=>{
if(err)console.log(err);
让jsfile=files.filter(f=>f.split(“.”.pop()==“js”);
if(jsfile.length){
让props=require(`./commands/${f}`);
log(`${f}chargée!`);
bot.commands.set(props.help.name,props);
});
});
fs.readdir(“./commands/fun/”,(错误,文件)=>{
if(err)console.log(err);
让jsfile=files.filter(f=>f.split(“.”.pop()==“js”);
if(jsfile.length){
让props=require(`./commands/fun/${f}`);
log(`${f}chargée!`);
bot.commands.set(props.help.name,props);
});
});
fs.readdir(“./commands/general/”,(错误,文件)=>{
if(err)console.log(err);
让jsfile=files.filter(f=>f.split(“.”.pop()==“js”);
if(jsfile.length){
让props=require(`./commands/general/${f}`);
log(`${f}chargée!`);
bot.commands.set(props.help.name,props);
});
});
fs.readdir(“./commands/moderation/”,(err,files)=>{
if(err)console.log(err);
让jsfile=files.filter(f=>f.split(“.”.pop()==“js”);
if(jsfile.length){
让props=require(`./commands/moderation/${f}`);
log(`${f}chargée!`);
bot.commands.set(props.help.name,props);
});
});
fs.readdir(“./commands/nsfw/”,(错误,文件)=>{
if(err)console.log(err);
让jsfile=files.filter(f=>f.split(“.”.pop()==“js”);
if(jsfile.length){
让props=require(`./commands/nsfw/${f}`);
log(`${f}chargée!`);
bot.commands.set(props.help.name,props);
});
});
bot.on(“就绪”,()=>{
log(`${bot.user.username}id du bot:${bot.user.id}Crée le:${bot.user.createdAt}`);
bot.user.setPresence({游戏:{名称:`https://www.eurotrans.me/ |${prefix}help`},状态:'dnd'});
});
on(“消息”,异步消息=>{
//一点数据分析/常规检查
if(message.author.bot)返回;
if(message.channel.type==='dm')返回;
如果(!message.content.startsWith(prefix))返回;
让内容=message.content.split(“”);
let command=content[0].toLowerCase();
设args=content.slice(1);
//检查消息是否包含命令并运行它
让commandfile=bot.commands.get(command.slice(prefix.length));
if(commandfile)commandfile.run(bot、message、args);
});
常量版本='0.1.1';
const CHANNEL='log';
bot.on('ready',function(){
log(“[META][INFO]ConnecteráL'API de Discord”);
});
//bot与Discord断开连接
bot.on('disconnected',function(){
console.log(“[META][WARN]解除不一致API的连接。正在尝试重新连接…”);
});
//来自Discord.js的警告
bot.on('warn',函数(msg){
console.log('[META][WARN]'+msg);
});
//来自Discord.js的错误
bot.on('error',函数(err){
console.log('[META][ERROR]'+err.message);
过程。退出(1);
});
//收到的信息
bot.on('message',函数(message){
if(message.author.id!=bot.user.id){
如果(message.channel.type=='text')
console.log('['+message.guild.name+'][#'+message.channel.name+'][MSG]'+message.author.username+
“#”+message.author.discriminator+”:“+formatConsoleMessage(message));
else if(message.channel.type==“dm”)
message.channel.sendMessage('Beep boop!抱歉,我无法回复直接消息');
else if(message.channel.type=='group')
message.channel.sendMessage('Beep boop!抱歉,我无法记录组消息');
}
});
//删除消息
bot.on('messageDelete',函数(message){
如果(message.channel.type=='text'){
//登录到控制台
console.log('['+message.guild.name+'][#'+message.channel.name+'][DELMSG]'+message.author.username+
“#”+message.author.discriminator+”:“+formatConsoleMessage(message));
//在公会的日志通道中发布
var log=message.guild.channels.find('name',CHANNEL);
if(log!=null)
log.sendMessage('**[已删除邮件]**'+Message.author+':'+Message.cleanContent);
}
});
//消息更新
bot.on('messageUpdate',函数(旧消息,新消息){
if(newMessage.channel.type='text'&&newMessage.cleanContent!=oldMessage.cleanContent){
//登录到控制台
console.log('['+newMes