MongoDB Atlas 连接不断下降
Posted
技术标签:
【中文标题】MongoDB Atlas 连接不断下降【英文标题】:MongoDB Atlas connection keeps dropping 【发布时间】:2020-07-07 13:21:41 【问题描述】:我已将 MongoDB atlas 集成到我的 nodejs 应用程序中,但连接每隔几个小时就会断开一次,这会迫使应用程序重新启动。是否有办法处理代码中的重新连接以避免重新启动应用程序?
MongoNetworkError: 连接 2 到 67.156.445.93:27017 已关闭 在(匿名函数).forEach.op (/home/ubuntu/app/node_modules/mongodb/lib/cmap/connection.js:63:15) 在 Map.forEach () 在 TLSSocket.Connection.stream.on (/home/ubuntu/app/node_modules/mongodb/lib/cmap/connection.js:62:20) 在 TLSSocket.emit (events.js:203:15) 在 _handle.close (net.js:607:12) 在 TCP.done (_tls_wrap.js:388:7) 名称:'MongoNetworkError', [Symbol(mongoErrorContextSymbol)]: isGetMore: true
代码:
const log = console.log;
const mongoose = require('mongoose');
const link = ' URL of MONGOATLAS DB';
const connectDB = async () =>
mongoose.connect(link,
useNewUrlParser: true,
useUnifiedTopology: true
);
mongoose.connection.on('connected',() =>
log(`MongoDB connection successful!`);
);
mongoose.connection.on('error',(err) =>
log(`MongoDB connection error => $err!`);
);
mongoose.connection.on('disconnected', () =>
log(`MongoDB connection diconnected`);
);
module.exports = connectDB;
【问题讨论】:
【参考方案1】:有一个名为 database.js 的文件。在里面放上这段代码:
const mongoose = require("mongoose");
const db = "mongodb://localhost:27017/yourDbName" //Or use atlas url.
const connectDB = async () =>
try
await mongoose.connect(db,
useNewUrlParser: true,
useUnifiedTopology: true,
useCreateIndex: true,
useFindAndModify: false
);
console.log("Mongo db Connected !");
catch (err)
console.log(err.message);
//exit process with failure
process.exit(1);
;
module.exports = connectDB;
在你的 server.js 或 index.js 中:
const connectDB = require("./database.js");
【讨论】:
谢谢,我会试试看它是否有效。旁注 - 根据文档,如果我们使用“useUnifiedTopology”选项,那么应用程序应该会自动重新连接。我已经在使用这个选项,所以不知道为什么需要显式处理断开连接事件以重新连接。以上是关于MongoDB Atlas 连接不断下降的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB Atlas 连接在 Heroku for NodeJS 上不起作用