未捕获的Promise Rejection SyntaxError:JSON中位置0处的意外标记u



我正试图将一个arg记录到json中,但它给我0错误意味着它没有得到输入或未定义但在console.log中,它清楚地显示了args。我能做什么?

const fs = require('fs')
module.exports = {
name: "write",
category: "fun",
description: "Save 1 message in our database",
run: async (client, message, args) => {
let save = args.join(" ");
console.log(save)
let msgs = JSON.parse(fs.readFileSync("./message.json", "utf8"));
msgs[message.guild.id] = {
msgs: save
};
await fs.writeFile("./message.json", JSON.stringify(msgs), (err) => {
if (err) throw err;
message.channel.send("message logged");
});
}
}

看起来message.json不是一个有效的json。相反,将代码包装在try-catch中,以便在此处处理错误。此外,请尝试记录消息,以便查看输出。

try {
let msgs = JSON.parse(fs.readFileSync("./message.json", "utf8"));
msgs[message.guild.id] = {
msgs: save
};
await fs.writeFile("./message.json", JSON.stringify(msgs), (err) => {
if (err) throw err;
message.channel.send("message logged");
}); 
} catch(e) {
console.log(e.message);
}

相关内容

最新更新