客户端连接MongoDB报useunifedtopology选项不支持错误如何解决
错误产生原因
报错来自以下问题:
- 代码存在拼写错误:你将连接选项
useUnifiedTopology错写为useUnifedTopology(正确拼写中f后存在字母i)。 - 版本兼容问题:如果你使用的是 Mongoose 6.0 及以上版本,
useNewUrlParser、useUnifiedTopology这类老旧连接选项已经被官方移除,相关逻辑已经成为默认连接行为,手动传入这些不被支持的选项就会触发解析错误。 - 隐藏逻辑问题:你的代码中没有引入
mongoose依赖,直接调用mongoose.connect会额外触发变量未定义的报错。
修复方法
如果使用 Mongoose 6.x 及以上的稳定版本,直接删除connect方法中传入的废弃配置项,补全依赖引入即可,修复后的完整代码如下:
const mongoose = require("mongoose"); const { Databse } = require("../../config.json"); module.exports = { name: "ready", once: true, execute(client) { console.log("The client is now ready!"); if(!Databse) return; mongoose.connect(Databse) .then(() => { console.log("The client is now connected with the Database!") }).catch((err) => { console.log(err) }) } }
如果你仍在使用 Mongoose 5.x 老版本,不需要删除配置项,仅需要把拼写错误的useUnifedTopology修正为useUnifiedTopology,同时补全mongoose的引入语句即可正常连接。
内容的提问来源于stack exchange,提问作者Tomek
相关产品推荐
相关产品推荐

