为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕盖茨4494581 2022-12-02 16:17:20
我有一个单独的 JSON 文件,链接为const Players = require('./Database/Players.json');和一个遍历代码的 praserclient.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] ^
查看完整描述

2 回答

?
婷婷同学_

TA贡献1844条经验 获得超8个赞

看看它是如何require工作的。如文档中所述: https ://nodejs.org/api/modules.html#modules_all_together

LOAD_AS_FILE(X)

  1. 如果 X 是文件,则加载 X 作为其文件扩展名格式。停止

  2. 如果 X.js 是文件,则将 X.js 作为 JavaScript 文本加载。停止

  3. 如果 X.json 是文件,则将 X.json 解析为 JavaScript 对象。停止

  4. 如果 X.node 是文件,则将 X.node 作为二进制插件加载。停止

所以你不应该调用JSON.parse,因为它会require自动将 json 模块解析为 JavaScript 对象。


查看完整回答
反对 回复 2022-12-02
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

据我了解,您正在尝试执行以下操作:

  1. 检查消息作者是否是具有激活帐户的已知玩家。

  2. 如果是 - 发送该帐户已激活的消息并返回。

  3. 否则 - 将新玩家数据添加到已知玩家。

您可能可以通过以下方式执行此操作:

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


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

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


    const PlayerData = Players[message.author.username];


    if (PlayerData && (PlayerData.AccountActive === 1)) {

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

      return;

    }


    Players[message.author.username] = {

      AccountActive: 1,

      Health: 100,

      Level: 1,

      Lust: 0,

      Items: ""

    };


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

      if (err) throw err;

      message.channel.send("Account Activated")

    });

  };


})


查看完整回答
反对 回复 2022-12-02
  • 2 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信