使node.js在ssh2连接错误后不退出
我在node.js应用程序中有以下代码,用于测试使用ssh2与服务器的SSH连接:使node.js在ssh2连接错误后不退出,node.js,Node.js,我在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)
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应用程序就会崩溃
我想做以下工作:
- 如果返回错误,只需重定向到/servers页面,而不会使应用程序崩溃
非常感谢。请收听
错误事件:
conn.on('error', function(e) { /* do whatever */ });
现在,由于连接错误未得到处理,您的进程崩溃。请收听错误事件:
conn.on('error', function(e) { /* do whatever */ });
现在,由于连接错误未得到处理,进程崩溃。您可能无法访问res
对象。您需要将整个conn.on('ready',..
放在您的路由处理程序中。它在我的路由处理程序中,我确实可以访问res
对象,但感谢您的消息,您可能无法访问res
对象。您需要将整个conn.on打开('ready',..
在您的路由处理程序中。它在我的路由处理程序中,我确实可以访问res
对象,但谢谢您的消息