How to erase characters printed in console

Now you could use readline library and its API to do this stuff.


There are functions available for process.stdout:

var i = 0;  // dots counter
setInterval(function() {
  process.stdout.clearLine();  // clear current text
  process.stdout.cursorTo(0);  // move cursor to beginning of line
  i = (i + 1) % 4;
  var dots = new Array(i + 1).join(".");
  process.stdout.write("Waiting" + dots);  // write text
}, 300);

It is possible to provide arguments to clearLine(direction, callback)

/**
 * -1 - to the left from cursor
 *  0 - the entire line // default
 *  1 - to the right from cursor
 */

Update Dec 13, 2015: although the above code works, it is no longer documented as part of process.stdin. It has moved to readline


The easiest way to overwrite the same line is

var dots = ...
process.stdout.write('Progress: '+dots+'\r');

the \r is the key. It will move the cursor back to the beginning of the line.

Tags:

Node.Js