在终止之前closures数据库连接

当我正在debugging时,我开始和终止我的节点过程很多次。 这使得这种情况发生:

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 

如何在终止节点进程之前closuresmongodb连接( db.close() )? 有没有办法像在客户端JS的beforeunload添加一个事件监听器? 或者我必须configuration一个数据库选项自动做到这一点?

你可以在process上监听'exit'事件 ,但是你不能在那里执行任何asynchronous操作,因为你的'exit'处理程序里面没有任何东西可以保持这个进程的打开状态。

你应该做的,而不是强制退出你的过程是通过closures任何开放的连接,服务器等来让它自然退出。