在终止之前关闭数据库连接

时间:2014-07-22 01:38:06

标签: node.js node-mongodb-native

当我进行调试时,我会多次启动和终止我的节点进程。这使得这种情况发生了:

2014-07-20T15:53:19.162-0400 [conn352]  authenticate db
2014-07-20T15:53:19.163-0400 [conn353]  authenticate db
2014-07-20T16:13:59.631-0400 [conn354]  authenticate db
2014-07-20T16:13:59.635-0400 [conn355]  authenticate db
2014-07-20T16:13:59.636-0400 [conn356]  authenticate db
2014-07-20T16:13:59.636-0400 [conn357]  authenticate db
2014-07-20T16:19:01.747-0400 [conn358]  authenticate db
2014-07-20T16:19:01.750-0400 [conn359]  authenticate db
2014-07-20T16:19:01.751-0400 [conn360]  authenticate db
2014-07-20T16:19:01.767-0400 [conn361]  authenticate db
2014-07-20T16:19:33.227-0400 [conn362]  authenticate db
2014-07-20T16:19:33.229-0400 [conn363]  authenticate db
2014-07-20T16:19:33.230-0400 [conn364]  authenticate db
2014-07-20T16:19:33.239-0400 [conn365]  authenticate db
2014-07-20T17:04:08.577-0400 [conn366]  authenticate db
2014-07-20T17:04:08.579-0400 [conn367]  authenticate db
2014-07-20T17:04:08.580-0400 [conn368]  authenticate db
2014-07-20T17:04:08.580-0400 [conn369]  authenticate db
2014-07-20T17:05:15.783-0400 [conn370]  authenticate db
2014-07-20T17:05:15.785-0400 [conn371]  authenticate db

如何在终止节点进程之前关闭mongodb连接(db.close())?有没有办法在客户端JS中添加像beforeunload这样的事件监听器?或者我是否必须配置db选项以自动执行此操作?

1 个答案:

答案 0 :(得分:1)

您可以在process上收听'exit' event,但是您无法在那里执行任何异步操作,因为您内部没有任何内容可以退出'处理程序可以/将使进程保持打开状态。

你应该做什么而不是强行退出你的过程是通过关闭任何打开的连接,服务器等让它自然退出。