2015-06-02 8 views
0

Кто-нибудь знает, как отключить цветовые метки в терминале?nodejs ssh клиент отключает цвета

var conn = require('ssh2').Client(); 
var onShell = function(err, stream) { 
    ... 
    var start = true; 
    var data_out = ''; 
    stream.on('data', function(data) { 

      if (/ > $/.test(data)) { 
      console.log('test oK'); 
      if (start) { 
       stream.write('export\r\n'); 
       start = false; 
      } 
      else { 
       console.log(data_out); 
       require('fs').writeFileSync('conf.txt', data_out) 
       stream.end(); 
       conn.end(); 
      } 
      } 
      data_out += data; 
    }); 
} 

сonn.on('ready', function() { 
     console.log('Client :: ready'); 
     conn.shell(onShell); 
}).connect({ 
     host: '62.117.93.138', // my Mikrotik Router 
     port: 22, 
}); 

в conf.txt я вижу цветные метки, как это:

[м [36M/системы [м [м [36mntp [м [м [36mserver [м [35mset [м [ м [32 мкл [м [33 м = [м [32 м м [м [36 м/инструмент [м [м [36 ммон [м [м [36 мпорт [м [35 мдд [м [м [32 м разрешено [м [33 м = [м [32 мно

вместо:

/system ntp server 
    set enabled=yes 
/tool romon port 
    add disabled=no 

ответ

0

В сеансах оболочки используются псевдотематики, поэтому удаленный конец считает, что существует реальный терминал. Вероятно, вам лучше использовать exec(), если это вообще возможно, иначе просто используйте простое регулярное выражение для удаления всех выходных последовательностей с выхода.

+0

Большое спасибо, это сработало – Max