Javascript 未捕获的承诺拒绝语法错误:JSON中位于位置0的意外标记u
我试图将一个arg记录到json,但它给我0错误意味着它没有得到输入或未定义 但是在console.log中,它清楚地显示了参数我能做什么Javascript 未捕获的承诺拒绝语法错误:JSON中位于位置0的意外标记u,javascript,node.js,json,Javascript,Node.js,Json,我试图将一个arg记录到json,但它给我0错误意味着它没有得到输入或未定义 但是在console.log中,它清楚地显示了参数我能做什么 const fs = require('fs') module.exports = { name: "write", category: "fun", description: "Save 1 message in our database", run: async (client, message, 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中,以便在这里处理错误。此外,尝试记录MSG,以便查看输出
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);
}
你的message.json可能不是有效的json,对json.parse的调用失败了。我看到我在看错误的目录文件。我有两个同名的文件,但在不同的目录xd中,这个代码使用的是未定义的,而不是{}xd。谢谢你的帮助