【问题标题】:NodeJS callback not printing output when it is successNodeJS回调成功时不打印输出
【发布时间】:2020-02-01 08:45:50
【问题描述】:

我编写了以下使用 nodejs 回调的代码。 当没有 telnet 连接时,它会正确打印 error

但是,当 telnet 成功执行时,它不会打印Success!

当我手动执行telnet linux003 4102 时,我看到一个空白屏幕。黑屏表示telnet连接成功

var abc = require("expect-telnet");
abc("linux003:4102", 
function(err) {
  if (err) { 
    console.error(err);
  }
  else {
    console.log('Success!');
  }
});

【问题讨论】:

  • 当你看到一个空白屏幕意味着它没有连接???
  • 黑屏表示已连接

标签: javascript node.js node-modules telnet


【解决方案1】:

看起来您可以利用期望步骤对象中的out property

outfunction:输出函数,接收上一步以来的输出。

const et = require("expect-telnet");

et("linux003:4102", [
  {
    expect: "some expected text", 
    out(output) {
      console.log("Success");
    }, 
    send: "exit\r"
}
], (err) => {
  if (err) console.error(err);
});

话虽如此,这个包不再被维护(见here),作者推荐另一个看起来可以让你这样做的包here)。

【讨论】:

【解决方案2】:

根据expect-telnet,只有在出现错误时才会调用回调。 所以,在下面

var abc = require("expect-telnet");
abc("linux003:4102", 
function(err) {
  if (err) { 
    console.error(err);
  }
  else {
    console.log('Success!');
  }
});

只有在出现错误时才会调用回调。所以Success!不会被打印出来。

【讨论】:

    【解决方案3】:

    根据expect-telnet doc,只有在发生错误时才会调用回调。

    【讨论】:

    猜你喜欢
    • 2016-11-17
    • 2015-03-31
    • 1970-01-01
    • 2021-12-22
    • 2023-02-24
    • 1970-01-01
    • 1970-01-01
    • 2020-02-11
    • 1970-01-01
    相关资源
    最近更新 更多