需要帮助让 JSON.parse() 工作(Discord Bot)

我有一个单独的 JSON 文件,链接为


const Players = require('./Database/Players.json');

和一个遍历代码的 praser


client.on('message', message => {



    if (message.content.toLowerCase() ==='smack activate') {

        

        let PlayerData = [message.author.username];


        Activate [message.author.username] = {

        AccountActive: 1,

        Health: 100,

        Level: 1,

        Lust: 0,

        Items: ""

        };


        var parsedata = JSON.parse(Players)   // <-----------

        if (parsedata.PlayerData.accountactive === 1) {

            message.channel.send ("Account Already Activated");

            return;

        }


        fs.writeFile("./Database/Players.json", JSON.stringify (Activate, null, 4), err => {

            if (err) throw err;

            message.channel.send ("Account Activated")

        });

    };

但似乎没有任何效果..我做错了什么?我收到此错误消息


undefined:1

[object Object]

 ^


慕盖茨4494581
浏览 92回答 2
2回答

婷婷同学_

看看它是如何require工作的。如文档中所述:&nbsp;https ://nodejs.org/api/modules.html#modules_all_togetherLOAD_AS_FILE(X)如果 X 是文件,则加载 X 作为其文件扩展名格式。停止如果 X.js 是文件,则将 X.js 作为 JavaScript 文本加载。停止如果 X.json 是文件,则将 X.json 解析为 JavaScript 对象。停止如果 X.node 是文件,则将 X.node 作为二进制插件加载。停止所以你不应该调用JSON.parse,因为它会require自动将 json 模块解析为 JavaScript 对象。

料青山看我应如是

据我了解,您正在尝试执行以下操作:检查消息作者是否是具有激活帐户的已知玩家。如果是 - 发送该帐户已激活的消息并返回。否则 - 将新玩家数据添加到已知玩家。您可能可以通过以下方式执行此操作:const Players = require('./Database/Players.json');client.on('message', message => {&nbsp; if (message.content.toLowerCase() === 'smack activate') {&nbsp; &nbsp; const PlayerData = Players[message.author.username];&nbsp; &nbsp; if (PlayerData && (PlayerData.AccountActive === 1)) {&nbsp; &nbsp; &nbsp; message.channel.send("Account Already Activated");&nbsp; &nbsp; &nbsp; return;&nbsp; &nbsp; }&nbsp; &nbsp; Players[message.author.username] = {&nbsp; &nbsp; &nbsp; AccountActive: 1,&nbsp; &nbsp; &nbsp; Health: 100,&nbsp; &nbsp; &nbsp; Level: 1,&nbsp; &nbsp; &nbsp; Lust: 0,&nbsp; &nbsp; &nbsp; Items: ""&nbsp; &nbsp; };&nbsp; &nbsp; fs.writeFile("./Database/Players.json", JSON.stringify(Players, null, 4), err => {&nbsp; &nbsp; &nbsp; if (err) throw err;&nbsp; &nbsp; &nbsp; message.channel.send("Account Activated")&nbsp; &nbsp; });&nbsp; };})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript