![](/img/trans.png)
[英]Problems with json.parse when making a command in discord bot
[英]Need help getting JSON.parse() to work (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]
^
看看require
是如何工作的。 如文檔中所述: https://nodejs.org/api/modules.html#modules_all_together
LOAD_AS_FILE(X)
- 如果 X 是文件,則加載 X 作為其文件擴展名格式。 停止
- 如果 X.js 是文件,則將 X.js 加載為 JavaScript 文本。 停止
- 如果 X.json 是文件,則將 X.json 解析為 JavaScript Z497031794414A5524BZAC.901 停止
- 如果 X.node 是一個文件,則將 X.node 作為二進制插件加載。 停止
所以你不應該調用JSON.parse
,因為require
會自動將 json 模塊解析為 JavaScript 對象。
據我了解,您正在嘗試執行以下操作:
您可能可以通過以下方式執行此操作:
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")
});
};
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.