我当前正在创建一个可读写的API服务器。使用MongoDB
图书馆使用猫鼬。
我想知道在读写时是否必须使用db.close()
。
datamodel.js:
var db = mongoose.connect('mongodb://localhost/testdb', {useNewUrlParser: true,useUnifiedTopology:true});
mongoose.Promise = global.Promise;
.....
Boards = mongoose.model("boards", BoardSchema);
exports.Boards = Boards;
routes / getList.js:
let result = await Boards.find().sort({"date": -1});
读取或写入时,是否应该用db.close()
关闭上面声明的数据库?
答案 0 :(得分:1)
(非常通用的答案,但应该可以帮助您开始研究什么)
关闭MongoDB连接取决于首先如何建立连接。
您是否在服务器启动时初始化连接:如果是,则不应关闭连接。 (但是在服务器启动时初始化连接不是一个好主意,因为如果服务器失去连接(例如重新启动数据库服务器),那么您还必须重新启动应用程序或设置reconnectTries
)
您是否正在使用connection pool
:如果您正在使用连接池,则Mongoose会自己小心地关闭和打开连接。您要做的就是release
使用后的连接,以便可以用于其他请求。
是否要为每个请求创建连接:如果是,则应在返回响应之前关闭连接,否则将很快耗尽数据库服务器上的可用连接。
答案 1 :(得分:0)
您可以致电mongoose.disconnect()来关闭连接