gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 02:58:07 35 4
gpt4 key购买 nike

我的 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 新手:)

非常感谢。

最佳答案

监听error事件:

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

现在,您的进程因连接错误未处理而崩溃。

关于node.js - 使node.js在ssh2连接错误后不退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27844845/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com