正如标题中所说,当我需要导出用CronJob制作的日程表时,我遇到了一个问题。我得到的错误是:
TypeError: Cannot read property 'send' of undefined
在Cron.js内部,我有:
const Discord = require('discord.js');
const fs = require("fs");
const client = new Discord.Client();
const { prefix, token } = require("../config.json");
const cron = require("cron")
const test = new cron.CronJob("00 00 13 * * 5", () =>{
client.channels.fetch("768752722743918614")
let testmsg = client.channels.cache.get("768752722743918614")
testmsg.send("test")
})
module.exports = testbot.js内部
const Discord = require('discord.js');
const fs = require("fs");
const client = new Discord.Client();
const { prefix, token } = require("../config.json");
const cron = require("cron")
const test = require("./commands/autocode")
test.start()这个时间表在bot.js内部没有问题,但我不想把它弄得不整洁。
发布于 2021-02-05 08:48:23
client.channels.cache.get似乎返回了未定义的结果。我认为您可以将client向下传递给您的cron作业,以使用相同的客户端实例。您可以返回一个函数,该函数将您想要的cron作业返回到.start()
const cron = require("cron");
const test = (client) => new cron.CronJob("00 00 13 * * 5", () => {
client.channels.fetch("768752722743918614");
let testmsg = client.channels.cache.get("768752722743918614");
testmsg.send("test");
})
module.exports = test;bot.js
const Discord = require('discord.js');
const fs = require("fs");
const client = new Discord.Client();
const { prefix, token } = require("../config.json");
const cron = require("cron");
const test = require("./commands/autocode")(client);
test.start();https://stackoverflow.com/questions/66055975
复制相似问题