使node.js在ssh2连接错误后不退出

使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)

我在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应用程序就会崩溃

我想做以下工作:

  • 如果返回错误,只需重定向到/servers页面,而不会使应用程序崩溃
我试图将“if(err)throw err;”行更改为“if(err)res.redirect('/servers');”,但它不起作用

有人能帮我解决这个问题吗?我是node.js的新手:)


非常感谢。

请收听
错误事件:

conn.on('error', function(e) { /* do whatever */ });

现在,由于连接错误未得到处理,您的进程崩溃。

请收听
错误事件:

conn.on('error', function(e) { /* do whatever */ });

现在,由于连接错误未得到处理,进程崩溃。

您可能无法访问
res
对象。您需要将整个
conn.on('ready',..
放在您的路由处理程序中。它在我的路由处理程序中,我确实可以访问
res
对象,但感谢您的消息,您可能无法访问
res
对象。您需要将整个
conn.on打开('ready',..
在您的路由处理程序中。它在我的路由处理程序中,我确实可以访问
res
对象,但谢谢您的消息