javascript - 为什么我的代码在写入文件时收到未定义的信息?

标签 javascript node.js discord.js

我正在尝试将所有消息记录在我的服务器上的机器人的文件中。但是,每当我运行我的机器人并且有人发送消息时,我都会收到此错误:

UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_CALLBACK]: Callback must be a function. Received undefined

这是我的代码:

if (message.channel.type !== 'dm')
{
var log = `[SERVER MESSAGE] ${message.member.user.tag}: "${message.content}" in #${message.channel.name}`;
  console.log(log);
  fs.writeFile("C:/Users/dubwi/Desktop/Discord_Bot/chatlog.json", `${log}`)
}
else{
  message.reply("I don't accept DMs at the moment");
  var log = `[DM MESSAGE] ${message.author.tag}: "${message.content}"`;
  console.log(log);
  fs.writeFile("C:/Users/dubwi/Desktop/Discord_Bot/chatlog.json", `${log}`)
}

最佳答案

您正在使用异步方法(fs.writeFile - doc),该方法需要回调函数。

因此,您可以使用不需要回调的同步方法 (fs.writeFileSync - doc ),或者修改代码以使用回调

希望这有帮助

关于javascript - 为什么我的代码在写入文件时收到未定义的信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59942339/

相关文章:

JavaScript 如何防止在 Promise 中推送 null?

javascript - 查明是否有人有角色

javascript - 我正在为我的 Discord 机器人创建一个用户信息命令,想知道是否有办法让 .createdAt 看起来更好

javascript - 如何让 skrollr.js 与 turbolinks 一起工作

javascript - 通过 app.js 连接到本地 MongoDB 服务器时遇到问题

node.js - 在 express.js 中,req.protocol 没有为我的安全链接选择 "https"。它总是选择 "http"

node.js - 使用express.bodyParser时如何获取文件名

node.js - Discord.js-突击队 : Stopping all commands if not in a specific channel

javascript - 执行不同组件的功能

node.js - 在 NodeJs 中处理 Mongodb 全局连接的最佳方法是什么