2015-07-19 7 views
2

Почему следующий код не приводит к выходу узла из процесса после запуска всех трех строк?Сценарий Node.js не выйдет

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

Сценарий завершается, если 3-я строка не выполнена.

+2

Похоже, вы добавили задание в очередь, и оно продолжает ждать, когда ему будет предложено выполнить задание. – michaelAdam

ответ

-1

Похоже, что базовое соединение с Mongo не устанавливается до тех пор, пока не назовется client.queue('users'). monq имеет метод client.close(), который закрывает свое соединение «db». С помощью нескольких модов вы можете проверить это.

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); 
Смежные вопросы