【问题标题】:Editing a json file with javascript使用 javascript 编辑 json 文件
【发布时间】:2021-09-04 14:29:47
【问题描述】:

所以我有一个命令将服务器前缀设置为他们所说的前缀 这是我使用 rn 的代码

client.on('message', message => {
if (message.content.toLowerCase().startsWith(',prefix')) {
const args = message.content.slice(prefix.length).trim().split(/ +/);
if (args(0)) return message.channel.send('what do you want the prefix to be'); 
let prefixm = args.slice(1).join(' ')
if (!prefix[message.guild.id]) prefix[message.guild.id] = {
        prefix: `${prefixm}`
};
fs.writeFile("./db/prefix.json", JSON.stringify(prefix), (error) => {
    console.error();
})
message.channel.send(`server prefix set to: ${prefixm}`);
}
})

所以当用户发送时,前缀!它编辑服务器的最后一个前缀 我浏览了整个互联网,但还没有人在 javascript 上做过,所以我需要你的帮助

谢谢你

【问题讨论】:

  • 您的问题存在一些问题。它的标题并不能反映你真正想要做什么。听起来您想根据用户向您的机器人发送消息来更改 Discord 服务器上的特定设置。如果是这样,您的问题标题将基于此。另外,你能修复你的代码格式吗?像if (!prefix[message.guild.id]) prefix[message.guild.id] 这样的格式很奇怪。您应该将要执行的语句放在新行的条件下方。你应该在语句周围使用花括号,即使只有一个。此外,您应该缩进您的代码。
  • 另外,Stack Overflow 是关于解决特定问题的,给出一个问题的清晰解释,你用来解决问题的代码,以及你的目标。如果您的问题更开放,例如“我想解决问题 x。我还没有代码尝试对此做任何事情,因为我不知道从哪里开始。人们有什么建议?”那么您应该考虑将其发布在softwareengineering.stackexchange.com 上。

标签: json discord.js


【解决方案1】:

这是一种方法,并附有解释:
prefix.json

{
"Placeholder" : {
"prefix": ","
}
}

^^^公会的占位符^^^
index.js - 或您在中使用前缀的任何文件

//function to require uncached
function requireUncached(module) {
delete require.cache[require.resolve(module)];
return require(module);
}

//message event callback with prefix
let prefixes = requireUncached('./prefix.json');
let prefix = prefixes['G'+message.guild.id].prefix;
//prefix is now the chosen prefix

//message event callback for new prefix:
//or guildCreate event could use default prefix
let newPre = message.content.split(/ +/)[1];
let prefixes = requireUncached('./prefixes.json');
prefixes['G'+message.guild.id].prefix = newPre
fs.writeFile('./prefixes.json', JSON.stringify(prefixes), err => {
if(err) throw err;
console.log(`Prefix saved as ${newPre}`)
})
//you can modify this for guildCreate event
//so that you won’t get error cannot 
//set property prefix of undefined

您也可以使用 fs.readFile 代替 requireUncached,但不知道如何使用它。

【讨论】:

    猜你喜欢
    • 2017-08-01
    • 2015-02-27
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 2018-04-19
    • 2021-07-11
    • 1970-01-01
    • 2021-10-21
    相关资源
    最近更新 更多