nodejs ssh客户端禁用颜色

nodejs ssh client disable colors

有人知道如何在终端中关闭颜色标签吗?

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 我看到这样的颜色标签:

[m[36m/system[m [m[36mntp[m [m[36mserver [m[35mset[m [m[32menabled[m[33m=[m[32myes [m[36m/tool[m [m[36mromon[m [m[36mport [m[35madd[m [m[32mdisabled[m[33m=[m[32mno

改为:

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

Shell会话使用伪TTY,所以远程端认为有一个真正的终端。如果可能的话,您最好尝试使用 exec(),否则只需使用一个简单的正则表达式从输出中删除所有转义序列。

在任何节点进程中,可以设置:

process.env.NODE_DISABLE_COLORS = 1

该选项从 v0.3.0 开始就存在,因此您可以在任何地方使用得很好。