Node.Js on windows - How to clear console

Windowsnode.jsConsoleWindows Vista

Windows Problem Overview


Being totally new into node.js environment and philosophy i would like answers to few questions. I had downloaded the node.js for windows installer and also node package manager.Windows Cmd prompt is being currently used for running nodejs apps.

  1. cls clears the command window or errors in command prompt. Is there a equivalent for node.js ? console.clear does not exist ;( or does it in some other form?

  2. I created a server through this code below

     var http = require("http");
     http.createServer(function (request, response) {
     	response.writeHead(200, {
     		"Content-Type": "text/html"
     	});
     	response.write("Hello World");
     	console.log("welcome world")response.end();
     }).listen(9000, "127.0.0.1");
    

i changed the code to below and refreshed the browser to find that content type does not change, how do i get to see the changes?

var http = require("http");
http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  console.log("welcome world")
  response.end();
}).listen(9000,"127.0.0.1");

Windows Solutions


Solution 1 - Windows

console.log('\033[2J');

This works on linux. Not sure about windows.

You can "trick" the user using something like this:

var lines = process.stdout.getWindowSize()[1];
for(var i = 0; i < lines; i++) {
    console.log('\r\n');
}

Solution 2 - Windows

process.stdout.write('\033c');

This also works on windows. Win7 at least.

Solution 3 - Windows

This clears the console on Windows and puts the cursor at 0,0:

var util = require('util');
util.print("\u001b[2J\u001b[0;0H");

or

process.stdout.write("\u001b[2J\u001b[0;0H");

Solution 4 - Windows

This is for Linux mainly but is also reported to work in Windows.

There is Ctrl + L in Gnome Terminal that clears the terminal as such. It can be used with Python, Node JS or any Interpreter presumably that uses terminal. I tend to clear many times hence this is very handy. Instaed of doing clear in Gnome Terminal you can just do Ctrl + L, it has nothing to do with the REPL running.

Solution 5 - Windows

i am using a windows CMD and this worked for me

console.clear();

Solution 6 - Windows

And to clear the console while in strict mode on Windows:

'use strict';
process.stdout.write('\x1Bc'); 

Solution 7 - Windows

Just use CTRL + L on windows to clear the console.

Solution 8 - Windows

Starting from Node.JS v8.3.0 you can use method clear:

console.clear()

Solution 9 - Windows

Haven't tested this on Windows but works on unix. The trick is in the child_process module. Check the documentation. You can save this code as a file and load it to the REPL every time you need it.

var exec = require('child_process').exec;

function clear(){
    exec('clear', function(error, stdout, stderr){
        console.log(stdout);
    });    
}

Solution 10 - Windows

To solve problems with strict mode:

'use strict';
process.stdout.write('\x1B[2J');

Solution 11 - Windows

Just use the official way:

console.log('Blah blah blah'); // Prints "Blah blah blah"

console.clear(); // Clears, or in other words, resets the terminal.

console.log('You will only see this message. No more Blah blah blah...');

Solution 12 - Windows

If you're using VSCode you can use CTRL + K. I know this is not a generic solution but may help some people.

Solution 13 - Windows

Based on sanatgersappa's answer and some other info I found, here's what I've come up with:

function clear() {
	var stdout = "";
    
	if (process.platform.indexOf("win") != 0) {
		stdout += "\033[2J";
	} else {
		var lines = process.stdout.getWindowSize()[1];
        
		for (var i=0; i<lines; i++) {
			stdout += "\r\n";
		}
	}
	
	// Reset cursur
	stdout += "\033[0f";
	
	process.stdout.write(stdout);
}

To make things easier, I've released this as an npm package called cli-clear.

Solution 14 - Windows

You can use the readline module:

readline.cursorTo(process.stdout, 0, 0) moves the cursor to (0, 0).

readline.clearLine(process.stdout, 0) clears the current line.

readline.clearScreenDown(process.stdout) clears everything below the cursor.

const READLINE = require('readline');

function clear() {
    READLINE.cursorTo(process.stdout, 0, 0);
    READLINE.clearLine(process.stdout, 0);
    READLINE.clearScreenDown(process.stdout);
}

Solution 15 - Windows

I couldn't get any of the above to work. I'm using nodemon for development and found this the easiest way to clear the console:

  console.log("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

It just scrolls the console several lines so you get a clear screen for subsequent console.log commands.

Hope it helps someone.

Solution 16 - Windows

This code works fine on my node.js server console Windows 7.

process.stdout.write("\u001b[0J\u001b[1J\u001b[2J\u001b[0;0H\u001b[0;0W");

Solution 17 - Windows

On mac, I simply use Cmd + K to clear the console, very handy and better than adding codes inside your project to do it.

Solution 18 - Windows

Belated, but ctrl+l works in windows if you're using powershell :) Powershell + chocolatey + node + npm = winning.

Solution 19 - Windows

Ctrl + L This is the best, simplest and most effective option.

Solution 20 - Windows

In my case I did it to loop for ever and show in the console a number ever in a single line:

class Status {

  private numberOfMessagesInTheQueue: number;
  private queueName: string;

  public constructor() {
    this.queueName = "Test Queue";
    this.numberOfMessagesInTheQueue = 0;
    this.main();
  }

  private async main(): Promise<any> {    
    while(true) {
      this.numberOfMessagesInTheQueue++;
      await new Promise((resolve) => {
        setTimeout(_ => resolve(this.showResults(this.numberOfMessagesInTheQueue)), 1500);
      });
    }
  }

  private showResults(numberOfMessagesInTheQuee: number): void {
    console.clear();
    console.log(`Number of messages in the queue ${this.queueName}: ${numberOfMessagesInTheQuee}.`)
  }
}

export default new Status();

When you run this code you will see the same message "Number of messages in the queue Test Queue: 1." and the number changing (1..2..3, etc).

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDeeptechtonsView Question on Stackoverflow
Solution 1 - WindowssanatgersappaView Answer on Stackoverflow
Solution 2 - WindowslfreeView Answer on Stackoverflow
Solution 3 - WindowslaktakView Answer on Stackoverflow
Solution 4 - WindowsNishantView Answer on Stackoverflow
Solution 5 - WindowsyousefView Answer on Stackoverflow
Solution 6 - WindowsguiwebView Answer on Stackoverflow
Solution 7 - WindowsLanil MarasingheView Answer on Stackoverflow
Solution 8 - WindowsAlex KView Answer on Stackoverflow
Solution 9 - WindowsAbel TerefeView Answer on Stackoverflow
Solution 10 - WindowsHenri CavalcanteView Answer on Stackoverflow
Solution 11 - WindowsbbkrzView Answer on Stackoverflow
Solution 12 - WindowsHexodusView Answer on Stackoverflow
Solution 13 - WindowsSteven VachonView Answer on Stackoverflow
Solution 14 - WindowsDaemon BeastView Answer on Stackoverflow
Solution 15 - WindowscisoView Answer on Stackoverflow
Solution 16 - WindowsSkySibeView Answer on Stackoverflow
Solution 17 - WindowsSmartniggsView Answer on Stackoverflow
Solution 18 - Windowsuser4421448View Answer on Stackoverflow
Solution 19 - WindowsAmishJohn81View Answer on Stackoverflow
Solution 20 - WindowsJean J. MichelView Answer on Stackoverflow