2014-09-08 3 views
2

Я пытаюсь написать тестовый пример для компонента NoFlo (написанного коллегой) - где компонент имеет «connect» inPort и «error» outPort, например:Как смоделировать событие 'error' на MongoDB

var self = this; // a NoFlo Component 
var mongodb = null; 

self.inPorts.connect.on("data", function(uri) { 
    mongodb = mongojs(uri); 

    self.outPorts.connected.send(mongodb); 

    mongodb.on("error", function(error) { 
     self.outPorts.error.send(error); 
    }); 
}); 

так на основе этого кода шаблона, как я должен имитировать ошибочную ситуацию (в тесте), так что он посылает сообщение об ошибке через Outport?

Я попытался отправить плохой uri как «lcalhost: 99999/abcdef», но он не работает.


Update: исходный код отправляет экземпляр mongodb через «подключен» Outport, я кэшировать его успешно испускают «ошибка» событие.

ответ

3

mongojs распространяется EventEmitter.

Предполагая, что mongodb является глобальным, позвоните по номеру mongodb.emit("error", "This is an error"), чтобы активировать событие error.

Если mongodb не определено, попробуйте использовать значение self, чтобы получить к нему доступ.

Подробнее:

+0

Спасибо! Хотя 'mongodb' не является глобальным, я могу кэшировать его в своем тестовом примере. * Обновил код, чтобы отразить это * –

Смежные вопросы