Отображение выходного сообщения только в случае успеха в NodeJS - PullRequest
0 голосов
/ 02 октября 2019
var abc = require("expect-telnet");

abc("linux123:2031",
console.log("Telnet working"),
function(err) {
  if (err) console.error(err);
});

Отображает сообщение Telnet working во всех сценариях. Я хочу, чтобы он отображался только при успешном соединении с telnet.

Ответы [ 2 ]

0 голосов
/ 05 октября 2019

Попробуйте это.

var abc = require("expect-telnet");

abc("linux123:2031",function(err,data) {
  if (err) {
      console.error(err);
    }else {
        console.log("Telnet working")
    }
});
0 голосов
/ 02 октября 2019

Судя по внешнему виду вашего кода, вам не нужно аутентифицировать свой telnet, поскольку я не вижу, чтобы вы отправляли имя пользователя или пароль. Если это не так, вам нужно отправить свою аутентификацию.

Вам нужно изменить ее на что-то вроде кода, показанного ниже. Удалите строки для аутентификации, если в этом нет необходимости.

var abc = require("expect-telnet");

abc("linux123:2031", [
  {expect: "Username", send: "username\r"},
  {expect: "Password", send: "password\r"},
  {expect: "#"       , send: "command\r" },
  {expect: "#"       , out: function(output) {
    console.log("telnet working");
  }, send: "status\r"}
], function(err) {
  if (err) console.error(err);
});

Попробуйте, если аутентификация не требуется: Этот код ожидает, когда telnet ответит символом «#» после подключения. Как только он это увидит, вы должны получить информацию из console.log.

Надеюсь, это поможет.

var abc = require("expect-telnet");

abc("linux123:2031", [
  {expect: "#"       , out: function(output) {
    console.log("telnet working");
  }, send: "status\r"}
], function(err) {
  if (err) console.error(err);
});
...