这是我尝试运行的代码。Mongo 守护进程(mongod(没有运行,所以我希望在 catch 块中出现错误,但我没有。代码完全忽略 catch 块。
猫鼬 v5.7.13, 节点 v12.13.0
const mongoose = require("mongoose");
mongoose
.connect("mongodb://localhost/playground", {
useNewUrlParser: true,
useUnifiedTopology: true
})
.then(() => console.log("Connected to mongoDB..."))
.catch(err => console.error(err.message));
但是一旦我删除useUnifiedTopology: true
选项,一切就会按预期工作。它进入捕获块,我收到我想要的"无法连接"错误。但我也收到警告说...
(节点:7834( 弃用警告:当前服务器发现和 监视引擎已弃用,将来将被删除 版本。若要使用新的服务器发现和监视引擎,请通过 选项 { useUnifiedTopology: true } 到 MongoClient 构造函数。
所以我试图理解 - 这只是一个错误还是使用useUnifiedTopology
有目的?
试试这个。
const mongoose = require("mongoose");
const mongoDB = 'mongodb://localhost/playground';
mongoose.set('useNewUrlParser', true);
mongoose.set('useUnifiedTopology', true);
mongoose.connect(mongoDB).then(() =>
console.log("Connected to mongoDB..."))
.catch(err => console.error(err.message));;
希望对您有所帮助。