Я получаю сообщение «Ошибка: попытка открыть незамкнутое соединение,», но я не верю, что это связано с проблемой db ... и вот почему я в тупик. Большинство решений этой ошибки, проблемы с ссылкой на db.Node.js: «При попытке открыть закрытое соединение» при вызове метода из дочернего процесса
Моя цель здесь - выполнить внешний процесс. Если процесс закрывается чем-то другим, кроме кода выхода 0, я хочу отправить сообщение по электронной почте, например.
Я использовал child.on («закрыть», функция (код) .... чтобы получить значение выхода из внешнего процесса (возвращается как «код») Так что если код! = 0 Я хочу что-то сделать ... может быть, повторить тест ... может быть, вызвать другой метод, который отправляет электронное письмо и т. Д.
Каждый раз, когда я пытаюсь вызвать метод, изнутри child.on ('close '), я получаю ошибку «Попытка открыть незамкнутое соединение». Вот почему я также обрабатываю действие сохранения в том же блоке.
Пример кода:
var spawn = require('child_process').spawn,
child = spawn('sipp', ['-s', dnis,server, '-sn', scenario, '-m', '1','-i','127.0.0.1','-recv_timeout','1000']);
}
child.on('close',function(code){
if(code != 0){
Call().emailAlert(dnis, server, scenario, type, carrier);
}
var TestResults = mongoose.model('test_results', TestResultsSchema);
// Saving results to MongoDB
var result = new TestResults({
testType: type,
dnis: dnis,
server: server,
result: code,
carrier: carrier,
date: Date.now()
});
result.save(function (err) {if (!err) {console.log ('Successful Save!')}
else{console.log(err)}});
});
};
Если удалить:
if(code != 0){
Call().emailAlert(dnis, server, scenario, type, carrier);
}
ошибка уходит. Каков наилучший способ захватить код выхода процесса и на его основе сделать вызов другого метода (т. Е. Отправить по электронной почте предупреждение) в Node.js?