【问题标题】:ReferenceError: Cannot access 'variable' before initializationReferenceError:在初始化之前无法访问“变量”
【发布时间】:2021-07-02 17:24:19
【问题描述】:

我目前不是最有经验的 Node.JS 编码,这是我不久前在 Discord.JS 中所做的。我最近回到它,发现它不起作用!我对这个问题相当一无所知,并会接受任何可能的帮助!谢谢!

module.exports = {
name: 'setpoint',
description: "Sets the player's points to a certain amount",
execute(message, args){
    const config = require('../config.json');
    const mongoose = require('mongoose');
    const Discord = require('discord.js');
    const client = new Discord.Client();
    mongoose.connect(config.mongoPass, {
        useNewUrlParser: true,
        useUnifiedTopology: true
    });
    const Data = require('../models/data.js');
    if(!args[1]) return message.reply('Please specify a player.');
    if(!args[2]) return message.reply('Please specify an amount.');
    if(!message.member.hasPermission('MANAGE_MEMBERS')) return message.reply("Insignificant permissions.");
    let user = message.guild.member(message.mentions.users.first());
    Data.findOne({
        userID: user.id
    }, (err, data) =>{
        if(err) console.log(err);
        if(!data) {
            const newData = new Data({
                name: user.username,
                userID: user.id,
                points: parseInt(args[2])
            })
            newData.save().catch(err => console.log(err));
            message.reply(`Set ${args[1]}'s points to ${addPoints}.`);
            return;
        }
        let addPoints = parseInt(args[2]);
        data.points=addPoints;
        message.reply(`Set ${args[1]}'s points to ${addPoints}.`);
        data.save();
        return;
    })
}

}

这是错误,

events.js:292
      throw er; // Unhandled 'error' event
      ^

ReferenceError: Cannot access 'addPoints' before initialization
    at /home/container/commands/setpoint.js:29:61
    at /home/container/node_modules/mongoose/lib/model.js:4875:16
    at /home/container/node_modules/mongoose/lib/model.js:4875:16
    at /home/container/node_modules/mongoose/lib/helpers/promiseOrCallback.js:24:16
    at /home/container/node_modules/mongoose/lib/model.js:4898:21
    at /home/container/node_modules/mongoose/lib/query.js:4447:11
    at /home/container/node_modules/kareem/index.js:136:16
    at processTicksAndRejections (internal/process/task_queues.js:79:11)
Emitted 'error' event on Function instance at:
    at /home/container/node_modules/mongoose/lib/model.js:4877:13
    at /home/container/node_modules/mongoose/lib/helpers/promiseOrCallback.js:24:16
    [... lines matching original stack trace ...]
    at processTicksAndRejections (internal/process/task_queues.js:79:11)

【问题讨论】:

  • 您有更多关于错误日志的详细信息吗?
  • 哦,哎呀,我忘记在帖子中包含它了。在这里,让我快速编辑一下。

标签: javascript node.js discord discord.js


【解决方案1】:

您声明let addPoints = parseInt(args[2]); 的行应位于message.reply(`Set ${args[1]}'s points to ${addPoints}.`); 之前

if(!data)之前声明

          if(Err) console.log(err);
          let addPoints = parseInt(args[2]); // <--- HERE
          if(!data) {
            const newData = new Data({
                name: user.username,
                userID: user.id,
                points: parseInt(args[2])
            })
            newData.save().catch(err => console.log(err));
            message.reply(`Set ${args[1]}'s points to ${addPoints}.`); //<--- HERE
            return;
        }
        data.points=addPoints;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-29
    • 2021-09-10
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多