问题
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");
回答1:
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');
}
回答2:
process.stdout.write('\033c');
This also works on windows. Win7 at least.
回答3:
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");
回答4:
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.
回答5:
And to clear the console while in strict mode on Windows:
'use strict';
process.stdout.write('\x1Bc');
回答6:
i am using a windows CMD and this worked for me
console.clear();
回答7:
Just use CTRL + L
on windows to clear the console.
回答8:
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 util = require('util');
var exec = require('child_process').exec;
function clear(){
exec('clear', function(error, stdout, stderr){
util.puts(stdout);
});
}
回答9:
To solve problems with strict mode:
'use strict';
process.stdout.write('\x1B[2J');
回答10:
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.
回答11:
If you're using VSCode
you can use CTRL + K
. I know this is not a generic solution but may help some people.
回答12:
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.
回答13:
There is no console.clear()
in node.
With ES6 JavaScript received the ''.repeat() string method, and so we can do:
console.log('\n'.repeat(1000));
which will basically print 1000 empty lines and simulate a console.clear()
回答14:
Belated, but ctrl+l works in windows if you're using powershell :) Powershell + chocolatey + node + npm = winning.
回答15:
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");
回答16:
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).
回答17:
Ctrl + L This is the best, simplest and most effective option.
来源:https://stackoverflow.com/questions/9006988/node-js-on-windows-how-to-clear-console