这是mongoose的方案文件。
方案:
const mongoose = require("mongoose");
let holiday = new mongoose.Schema({
staff: String,
reason: String,
expected: Number
})
module.exports = mongoose.model("holiday", holiday);
这是主文件,我试图在其中获取数据,但没有工作。
事件:
client.on('message', async message => {
let p = config.bot.prefix;
let client = message.client;
if (message.author.bot) return;
if (message.channel.type === 'dm') return;
if (!message.content.startsWith(p)) {
console.log(1)
let guild = client.guilds.cache.get(config.server.id)
if (!message.guild.id === "911962044985667584") return;
let role = message.guild.roles.cache.find(role => role.name === "On holiday");
if (!message.member.roles.cache.has("956942754502565908")) return;
const embed = new MessageEmbed()
.setTitle("Staff back from holiday")
.addField("Staff: ", message.author.tag, true)
const data = holidaydata.findOne({
staff: message.author.id
})
console.log(data.expected, data.reason, Date.now())
if (!data) return console.log("NO DATA")
if (Date.now() > data.expected) {
console.log(3)
message.member.roles.remove("956942754502565908")
message.member.roles.add("913070918404833300")
message.member.roles.add("913071151427780698")
client.channels.cache.get(channels.stafflogs).send({ embed: embed })
message.channel.send("Welcome back from holiday!")
return data.delete();
}
}
我从上面的代码中得到的控制台输出。
1
undefined undefined 1668502797493
我尝试检查保存在数据库中的时间戳是否等于或大于当前时间戳,以便删除数据。
1条答案
按热度按时间l3zydbqr1#
您应该等待您的
findOne
呼叫。否则它只会传回一个promise,而不具有expected
或reason
属性。请以下列程式码交换您的呼叫: