我正在使用 Discord.JS v13 進行分片,我正在使用 mongoose 作為資料庫。我在分index.js片bot.js檔案index.js(我不知道為什么會發生這種情況,因為幾天前一切都很好,而且我沒有改變任何東西。
index.js(分片檔案)
// .....Sharding Manager
const dbURI = process.env.DBURI;
const mongoose = require("mongoose");
// noinspection JSCheckFunctionSignatures
mongoose.connect(dbURI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
/models/user.js(架構檔案)
const mongoose = require("mongoose");
const userinfo = new mongoose.Schema({
UserID: {
type: String || Number,
required: true,
},
/** Whole schema **/
});
const MessageModel = (module.exports = mongoose.model("muser_userinfo", userinfo));
scommands/filters.js(我想使用的檔案!)
const userinfo = require("../models/user.js");
const user_id = interaction.user.id;
const data = await userinfo.findOne({ UserID: user_id });
if (!data) {
//....
錯誤
7|muser | MongooseError: Operation muser_userinfos.findOne()` buffering timed out after 10000ms 7|muser | at Timeout.<anonymous> (/root/Bots/muser/node_modules/mongoose/lib/drivers/node-mongodb-native/collection.js:185:20) 7|muser | at listOnTimeout (node:internal/timers:559:17) 7|muser | at processTimers (node:internal/timers:502:7)
我已經嘗試了您可能想到的所有方法,使用find()而不是findOne(),.then()在連接時使用,仔細檢查了憑據等等!
uj5u.com熱心網友回復:
ShardingManager 通常為每個分片生成一個行程(除非您另外指定)。如果您只是從分片檔案連接到 Mongo 資料庫,那么您的機器人客戶端將無權訪問它。
嘗試從客戶端連接到您的 Mongo 資料庫,這并不重要,因為 Mongo 支持多個連接。
uj5u.com熱心網友回復:
根據我使用貓鼬的經驗,由于互聯網連接不足,它會引發錯誤,但要查看其他檔案。這是我發現可以幫助你的
根據我的經驗,當您的資料庫未連接時會發生這種情況,請嘗試檢查以下內容 -
- 您是否已連接資料庫并且您從代碼中指向相同的 url。
- 檢查您的
mongoose.connect(...)代碼是否正在加載。
我遇到了這個問題,我從終端運行節點 index.js,而 mongoose 連接代碼位于不同的檔案中。在 index.js 中要求該貓鼬代碼后,它又可以作業了。--@Abhishek Gangwar 的最大功勞
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/450946.html
下一篇:記憶體屏障到底要解決什么問題?
