作为node.js环境和哲学的全新,我想回答几个问题。我已经下载了用于Windows安装程序的node.js以及节点包管理器.Windows Cmd提示符当前用于运行nodejs应用程序。
cls清除命令窗口或命令提示符中的错误。 node.js有等价物吗? console.clear不存在;(还是以其他形式存在?
我通过以下代码创建了一个服务器
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");
我将代码更改为以下内容并刷新浏览器以查找内容类型不会更改,如何查看更改?
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");
答案 0 :(得分:92)
console.log('\033[2J');
这适用于linux。不确定窗户。
您可以使用以下内容“欺骗”用户:
var lines = process.stdout.getWindowSize()[1];
for(var i = 0; i < lines; i++) {
console.log('\r\n');
}
答案 1 :(得分:66)
process.stdout.write('\033c');
这也适用于Windows。至少Win7。
答案 2 :(得分:50)
这将清除Windows上的控制台并将光标置于0,0:
var util = require('util');
util.print("\u001b[2J\u001b[0;0H");
process.stdout.write("\u001b[2J\u001b[0;0H");
答案 3 :(得分:37)
主要用于 Linux ,但据报道也适用于Windows。
Gnome Terminal中有 Ctrl + L ,它会清除终端。它可以与Python,Node JS或任何使用终端的解释器一起使用。我倾向于多次清楚,因此这非常方便。如果在Gnome Terminal中清除你可以做 Ctrl + L ,它与REPL运行无关。
答案 4 :(得分:24)
在Windows上以严格模式清除控制台:
'use strict';
process.stdout.write('\x1Bc');
答案 5 :(得分:17)
我正在使用Windows CMD,这对我有用
console.clear();
答案 6 :(得分:8)
从Node.JS v8.3.0 开始,您可以使用方法clear:
console.clear()
答案 7 :(得分:7)
尚未在Windows上测试此功能但在unix上运行。诀窍在child_process
模块中。查看文档。您可以将此代码保存为文件,并在每次需要时将其加载到REPL。
var util = require('util');
var exec = require('child_process').exec;
function clear(){
exec('clear', function(error, stdout, stderr){
util.puts(stdout);
});
}
答案 8 :(得分:7)
只需在Windows上使用head1, head2, head3
即可清除控制台。
答案 9 :(得分:3)
用严格模式解决问题:
'use strict';
process.stdout.write('\x1B[2J');
答案 10 :(得分:2)
如果您使用 VSCode
,则可以使用 CTRL + K
。我知道这不是一般的解决方案,但可以帮助一些人。
答案 11 :(得分:2)
我无法完成上述任何工作。我使用nodemon进行开发,发现这是清除控制台的最简单方法:
console.log("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
它只是将控制台滚动几行,以便为后续的console.log命令提供一个清晰的屏幕。
希望它有所帮助。
答案 12 :(得分:2)
就用官方的方式:
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...');
答案 13 :(得分:1)
节点中没有console.clear()
。
使用ES6 JavaScript收到了''.repeat()
string method,因此我们可以这样做:
console.log('\n'.repeat(1000));
基本上会打印1000个空行并模拟console.clear()
答案 14 :(得分:1)
您可以使用readline
模块:
readline.cursorTo(process.stdout, 0, 0)
将光标移动到(0,0)。
readline.clearLine(process.stdout, 0)
清除当前行。
readline.clearScreenDown(process.stdout)
清除光标下方的所有内容。
const READLINE = require('readline');
function clear() {
READLINE.cursorTo(process.stdout, 0, 0);
READLINE.clearLine(process.stdout, 0);
READLINE.clearScreenDown(process.stdout);
}
答案 15 :(得分:1)
基于sanatgersappa的回答以及我发现的其他一些信息,这是我提出的:
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);
}
为了方便起见,我将其作为名为cli-clear的npm包发布。
答案 16 :(得分:0)
迟来的,但是如果你正在使用powershell,则ctrl + l可以在windows中运行:) Powershell + chocolatey + node + npm = wins。
答案 17 :(得分:0)
此代码在我的node.js服务器控制台Windows 7上运行良好。
process.stdout.write("\u001b[0J\u001b[1J\u001b[2J\u001b[0;0H\u001b[0;0W");
答案 18 :(得分:0)
就我而言,我一直循环播放并在控制台中单行显示一个数字:
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();
运行此代码时,您将看到相同的消息“队列Test Queue中的消息数:1.”。和数字更改(1..2..3等)。
答案 19 :(得分:-1)
Ctrl + L 这是最好,最简单,最有效的选择。
答案 20 :(得分:-1)
在Mac上,我只需使用 Cmd + K 清除控制台,非常方便,并且比在项目内部添加代码更方便。