discord.js中的“未定义”错误,有人可以帮我吗?

时间:2019-04-05 13:18:43

标签: javascript node.js discord.js

我开始用discord.js制作不和谐的RPG游戏,但出现错误。这是我的代码和错误:

let exp = require("./exp.json");
let userEXP = exp[message.author.id].exp;

if (voidCost) {
    exp[message.author.id] = {
        exp: exp[message.author.id].exp - 1700
    }

    fs.writeFile("./exp.json", JSON.stringify(exp), (err) => {
        if (err) {
           console.log(err)
        }
    })
}

let Void = require(`./weapons/Void.json`);

if (voidAmt) {
    Void[message.author.id] = {
        Void: Void[message.author.id].Void + 3
    }

    fs.writeFile("./weapons/Void.json", JSON.stringify(Void), (err) => {
        if (err) {
            console.log(err)
        }
    })
}

if (!Void[message.author.id]) {
    Void[message.author.id] = {
        Void: 0
    }
}

错误:

(node:8632) UnhandledPromiseRejectionWarning: TypeError:
Cannot read property 'Void' of undefined` (referred to "Void[message.author.id].Void")

有人可以帮我吗?错误是什么意思,我该如何避免?

1 个答案:

答案 0 :(得分:0)

尝试这样做:

let Void = require(`./weapons/Void.json`);

if (voidAmt) {
    if (!Void[message.author.id]) {
        Void[message.author.id] = {
            Void: 0
        }
    }

    Void[message.author.id] = {
        Void: Void[message.author.id].Void + 3
    }

    fs.writeFile("./weapons/Void.json", JSON.stringify(Void), (err) => {
        if (err) {
            console.log(err)
        }
    })
}

所以基本上只需将支票向上移。

仅说对数据库使用JSON并不是很可靠,并且可能会破坏您的数据。 https://www.npmjs.com/package/enmap是一个很好的选择,它至少有点失败,并且更易于使用