使用猫鼬,我们可以通过连接选项简单地处理重新连接:
let dbOptions = {
dbName: process.env.MONGO_DATABASE_NAME,
autoReconnect: true,
reconnectInterval: 1000,
reconnectTries: 10,
};
mongoose.connect(process.env.MONGO_URI, dbOptions);
// Create connection object.
const db = mongoose.connection;
Run Code Online (Sandbox Code Playgroud)
在本机 MongoDB 驱动程序(版本 4.4)中,没有类似的连接选项可用: https://mongodb.github.io/node-mongodb-native/4.4/interfaces/MongoClientOptions.html
发生重大错误时处理数据库重新连接的最简单方法是什么?
无论您从哪里获得猫鼬连接片段,它都已经过时了。
和选项是 v4.0 之前的 Nodejs 原生驱动程序中的autoReconnect一个auto_reconnect东西,而 mongoose 只是将这些选项代理给驱动程序。
这是驱动程序 3.7 的文档,其中“autoReconnect”仍然存在:http://mongodb.github.io/node-mongodb-native/3.7/api/global.html#MongoClientOptions 这是它已被删除的提交:https://github.com/mongodb/node-mongodb-native/commit/e3cd9e684aea99be0430d856d6299e65258bb4c3#diff-f005e84d9066ef889099ec2bd907abf7900f76da67603e4130e1c92fac92533dL90
该选项默认为“True”,并强烈提示不要更改此值,除非您确切知道为什么需要禁用它。
v4 对驱动程序引入了许多更改 - 重构 typescript、架构更改,您可以从提交中看到它,对吧。其中一项更改影响了连接逻辑和池管理。不再有禁用重新连接的选项。无论您如何直接连接或通过猫鼬连接,它总是会重新连接。
| 归档时间: |
|
| 查看次数: |
1377 次 |
| 最近记录: |