Node.js脚本不会退出

为什么下面的代码在运行全部3行之后不会导致节点退出进程?

var monq = require('monq') var client = monq('mongodb://remote.db.com:27017/mydB') var queue = client.queue('users') 

如果第三行不执行,脚本会退出。

您必须等到asynchronous操作(处理队列)完成,然后调用process.exit()才能结束脚本的执行。 请参阅: https : //nodejs.org/api/process.html#process_process_exit_code

看起来,直到client.queue('users')被调用之前,到Mongo的底层连接才build立client.queue('users') 。 monq有一个client.close()方法来closures它的db连接。 有几个MOD可以testing这个。

  var monq = require('monq') var client = monq('mongodb://localhost:27017/mydB') var queue; setTimeout(function() { // create the queue which establishes the connections queue = client.queue('users'); setTimeout(function() { // close connection client.close(); }, 5000) }, 5000);