如何使用节点/ npm清除屏幕祝福(类似curses的库)

时间:2015-07-16 15:45:34

标签: node.js

我正在使用node / npm祝福创建一个监视特定应用程序的屏幕,我希望监视工具看起来像linux top。我认为相对简单(但我无法在任何地方找到答案)的问题是,在启动时以及根据用户输入的特定点清除屏幕。

现在我可以使用祝福正确地绘制屏幕(下面的示例程序),但问题是我需要在启动时清除屏幕(现在第一行输出刚刚启动程序后附加) ):

var blessed = require('blessed');

var screen = blessed.screen(),
    body = blessed.box({
      top: 0,
      left: 0,
      width: '100%',
      height: '100%',
      tags: true
    });

var items = [];

screen.append(body);

screen.key(['escape', 'q', 'C-c'], function(ch, key) {
  return process.exit(0);
});

function log(text) {
  items.push(text);

  var MAX = 10;
  if( items.length > MAX+1 ){
    items.shift();
  }

  for (var i=1; i<MAX; i++){
    body.setLine(i, items[i]);
  }
  screen.render();

}

function status(text) {
  body.setLine(0, text );
  screen.render();
}

var counter = 1;
setInterval(function() {
  status((new Date()).toISOString());
  log('Line number: ' + (counter++));
}, 1000);

1 个答案:

答案 0 :(得分:0)

为了完整起见,下面提供了该问题的解决方案,并且非常简单。要清除屏幕,请在程序开头发出以下代码:

screen.render();

我在原帖中引用的示例程序可以修改如下,现在有效:

var blessed = require('blessed');

var screen = blessed.screen(),
    body = blessed.box({
      top: 0,
      left: 0,
      width: '100%',
      height: '100%',
      tags: true
    });

// The following line clears the screen
screen.render();
:
: