MongoDB Discord.js,uri 未定义
Posted
技术标签:
【中文标题】MongoDB Discord.js,uri 未定义【英文标题】:MongoDB Discord.js, uri is undefined 【发布时间】:2021-07-10 12:55:05 【问题描述】:出现错误时,我正在将 Mongo DB 连接到我的机器人。这是我在 main.js 中的编码:
const Discord = require('discord.js');
const client = new Discord.Client( partials: ["MESSAGE", "CHANNEL", "REACTION"]);
require("dotenv").config();
const fs = require('fs');
const prefix = process.env.PREFIX;
client.prefix = process.env.PREFIX;
const mongoose = require('mongoose');
client.commands = new Discord.Collection();
client.events = new Discord.Collection();
fs.readdirSync('./events/').filter(file => file.endsWith('.js')).forEach(events =>
require(`./events/$events`)(client, prefix);
);
['command_handler'].forEach(handler =>
require(`./handlers/$handler`)(client, Discord);
);
mongoose.connect(process.env.MONGODBSRV,
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false
).then(() =>
console.log('Connected to the database!');
).catch((err) =>
console.log(err);
);
client.login(process.env.DISCORD_TOKEN);
我不知道出了什么问题,因为我对 Mongo 真的很陌生,所以如果您提供一些建议,我会很高兴的。我一直在关注如何连接它的教程(如果你想看的话,由 Codelyon 提供)。这是我的错误:
MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.
at NativeConnection.Connection.openUri (C:\Users\shann\Desktop\DiscordBot\node_modules\mongoose\lib\connection.js:694:11)
at C:\Users\shann\Desktop\DiscordBot\node_modules\mongoose\lib\index.js:348:10
at C:\Users\shann\Desktop\DiscordBot\node_modules\mongoose\lib\helpers\promiseOrCallback.js:31:5
at new Promise (<anonymous>)
at promiseOrCallback (C:\Users\shann\Desktop\DiscordBot\node_modules\mongoose\lib\helpers\promiseOrCallback.js:30:10)
at Mongoose._promiseOrCallback (C:\Users\shann\Desktop\DiscordBot\node_modules\mongoose\lib\index.js:1152:10)
at Mongoose.connect (C:\Users\shann\Desktop\DiscordBot\node_modules\mongoose\lib\index.js:347:20)dex.js:347:20)
at Object.<anonymous> (C:\Users\shann\Desktop\DiscordBot\main.js:24:10)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14) at internal/main/run_main_module.js:17:47
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12) at internal/main/run_main_module.js:17:47
注意:它实际上并没有使我的机器人崩溃。我的其余代码运行良好。
【问题讨论】:
是process.env.MONGODBSRV
标记“作为字符串”吗?
我不明白你的意思。在我的环境中,它看起来像 MONGODBSRV = <My connection>
你能试试把require("dotenv").config()
放在最上面吗?
已经有了。 (如果你的意思是在 main.js 中)
尝试在调用mongoose.connect
之前添加console.log(process.env.MONGODBSRV)
【参考方案1】:
在您的代码中,问题是process.env.MONGODBSRV
。
我认为,您没有在 .env
文件中定义 MONGODBSRV
的值。看看吧!
【讨论】:
以上是关于MongoDB Discord.js,uri 未定义的主要内容,如果未能解决你的问题,请参考以下文章
MessageCreate.js 数据库前缀问题 - Discord.js v13/MongoDB
不和谐机器人 |使用 discord.js 和 MongoDB 进行排名(排行榜?)系统