我的node.js应用程序中有以下代码,用于测试使用ssh2与服务器的SSH连接:
var Connection = require('ssh2');
var conn = new Connection();
conn.on('ready', function() {
console.log('Connection :: ready');
conn.exec('uptime', function(err, stream) {
if (err) throw err;
stream.on('exit', function(code, signal) {
console.log('Stream :: exit :: code: ' + code + ', signal: ' + signal);
}).on('close', function() {
console.log('Stream :: close');
conn.end();
}).on('data', function(data) {
console.log('STDOUT: ' + data);
}).stderr.on('data', function(data) {
console.log('STDERR: ' + data);
});
});
}).connect({
host: serverIp,
port: serverPort,
username: serverUsername,
privateKey: require('fs').readFileSync('./id_rsa')
});
它工作正常,但如果它返回错误,例如,如果我得到连接超时,则node.js应用程序崩溃...
我想做以下事情:
我试图更改" if(错误)throw err;"与" if(err)res.redirect(' / servers');"但它没有用......
有人可以帮我解决这个noobie问题吗?我是node.js的新手:)
非常感谢。
答案 0 :(得分:5)
收听error
事件:
conn.on('error', function(e) { /* do whatever */ });
现在,您的进程崩溃了b / c连接错误未处理。