javascript - MongooseError:操作 `muted-members.insertOne()` 缓冲在 10000 毫秒后超时
问题描述
请帮助我,我想做一个 Automute,但我有一个问题
当静音用户离开服务器时,控制台会给我这个错误:
/Users/Fred/Desktop/Papera Bot/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:149
const err = new MongooseError(message);
^
MongooseError: Operation `muted-members.insertOne()` buffering timed out after 10000ms
at Timeout.<anonymous> (/Users/badreddinelaghlid/Desktop/Papera Bot/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:149:23)
at listOnTimeout (node:internal/timers:557:17)
at processTimers (node:internal/timers:500:7)
然后当用户再次加入服务器时,机器人不会给用户静音角色
我尝试用猫鼬制作这个代码
模型的架构代码:
const client = require("../index");
const Schema = require("../models/muted");
client.on("guildMemberAdd", async(member) => {
const data = await Schema.findOne({Guild:member.guild.id});
if (!data) return;
const user = data.User.findIndex((prop) => prop === member.id);
if (user == -1) return;
let muteRole = message.guild.roles.cache.find(role => role.name === 'muted');
member.roles.add(muteRole.id);
});
guildMember的代码添加:
const client = require("../index");
const Schema = require("../models/muted");
client.on("guildMemberAdd", async(member) => {
const data = await Schema.findOne({Guild:member.guild.id});
if (!data) return;
const user = data.User.findIndex((prop) => prop === member.id);
if (user == -1) return;
let muteRole = message.guild.roles.cache.find(role => role.name === 'muted');
member.roles.add(muteRole.id);
});
如果您需要我的代码/机器人中的任何信息来帮助我,您可以告诉我伙计们
感谢关注!
解决方案
去年的某个时候,当我与 Mongoose 一起工作时,我遇到了类似的问题。我运行了.findOne
查询,我得到了这个错误MongooseError: Operation projects.findOne() buffering timed out after 10000ms
我发现我错过了.exec()
应该执行查询的函数。添加它并执行我的查询。
您可以在此处阅读 Mongoose 文档:https ://mongoosejs.com/docs/api.html#query_Query-exec