在 MongooseJS 中使用 on() 或 once() 来处理 `open` 事件

Posted

技术标签:

【中文标题】在 MongooseJS 中使用 on() 或 once() 来处理 `open` 事件【英文标题】:Using on() or once() for `open` event in MongooseJS 【发布时间】:2013-07-25 22:20:41 【问题描述】:

我见过很多实际建立 MongoDB 连接的不同方法:

    我见过一些人们不使用openerror 事件的代码 mongoose.connection.on('open', callback()); mongoose.connection.once('open', callback());

我的看法是:

如果我的应用只在需要使用时才连接到数据库,请使用(2) 如果我的应用程序一直连接到数据库……我使用 (2) 还是 (3) 都没有关系?

这也提出了一个问题,我的应用是否应该保持与数据库的持久连接(服务器和数据库在同一台机器上运行)?

感谢您的帮助

【问题讨论】:

【参考方案1】:

您说得对,当您的应用程序不断连接到数据库时,使用 (2) 或 (3) 并不重要。

就持久连接而言,唯一的代价是每隔一段时间发送一个 tcp keepalive 数据包。由您决定额外的套接字是否值得不必为每次调用建立新连接。

【讨论】:

以上是关于在 MongooseJS 中使用 on() 或 once() 来处理 `open` 事件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 mongoosejs 中深度填充多个路径?

是否可以在 mongoosejs 模式中填充自引用?

Mongoosejs - 我可以在“查找”的后查询中间件中修改文档吗?

await 仅在异步函数中有效 - 使用 mongoosejs exec() 时

MongooseJS 在填充后返回空数组

无法使用 mongoosejs 填充