Node.Js on windows - How to clear console
Windowsnode.jsConsoleWindows VistaWindows 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.
-
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?
-
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");
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).