Windows上的Node.Js - 如何清除控制台

Dee*_*ons 81 windows console windows-vista node.js

作为node.js环境和哲学的全新,我想回答几个问题.我已经下载了用于Windows安装程序的node.js以及节点包管理器.Windows Cmd提示符当前用于运行nodejs应用程序.

  1. cls清除命令窗口或命令提示符中的错误.node.js有等价物吗?console.clear不存在;(或以其他形式存在?

  2. 我通过以下代码创建了一个服务器

    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");
    
    Run Code Online (Sandbox Code Playgroud)

我将代码更改为下面并刷新浏览器以查找内容类型不会更改,如何查看更改?

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");
Run Code Online (Sandbox Code Playgroud)

san*_*ppa 95

console.log('\033[2J');
Run Code Online (Sandbox Code Playgroud)

这适用于linux.关于窗户不确定.

您可以使用以下内容"欺骗"用户:

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

  • 这是一个[ANSI转义码](http://en.wikipedia.org/wiki/ANSI_escape_code),如果你们都很好奇(我是).`\ 033`是ASCII中ASCII的八进制数.使用括号,它形成CSI(控制序列介绍器).`0J`,`1J`和`2J`分别清除顶部,底部和整个屏幕. (12认同)
  • 如果有人发现这种情况.在windows上:`process.stdout.write('\ 033c');`,如''\ 033 [2J'`只清除当前的应用程序流,''\ 033c'`重置std (8认同)
  • 这在严格模式下不起作用. (2认同)
  • @TedNyberg您是正确的,它不能在严格模式(八进制文字)下运行,但是您可以根据需要使用“ \ x1BC”或“ \ x1B [EJ””来解决此问题。 (2认同)

lfr*_*ree 68

process.stdout.write('\033c');
Run Code Online (Sandbox Code Playgroud)

这也适用于Windows.Win7至少.

  • 这是此处列出的唯一一个在Server 2008 r2上为我工作的转义序列,它在我的Windows 7系统上运行良好. (2认同)
  • 做了很多搜索.在Windows 10上只有这个实际工作.谢谢. (2认同)

lak*_*tak 53

这将清除Windows上的控制台并将光标置于0,0:

var util = require('util');
util.print("\u001b[2J\u001b[0;0H");
Run Code Online (Sandbox Code Playgroud)

要么

process.stdout.write("\u001b[2J\u001b[0;0H");
Run Code Online (Sandbox Code Playgroud)

  • 是的,我正在使用它.代码可能由nodejs解释. (2认同)
  • *和*这在严格模式下工作,在使用 \033 解决方案时会抱怨八进制文字 (2认同)

Nis*_*ant 44

这主要适用于Linux,但据报道也适用于Windows.

Ctrl + L在Gnome终端在清零终端本身.它可以与Python,Node JS或任何使用终端的解释器一起使用.我倾向于多次清楚,因此这非常方便.你可以在Gnome Terminal做清楚Ctrl + L,它与REPL运行无关.

  • 在Windows 8命令提示符下使用节点时,Ctrl + L清除屏幕 (4认同)
  • 这应该是首选答案,因为节点REPL使用gnom-terminal,所以ctrl + l也适用于Windows. (4认同)
  • 很棒的建议!这将清除屏幕,仅保留&gt;和光标。 (2认同)

gui*_*web 27

并在Windows上以严格模式清除控制台:

'use strict';
process.stdout.write('\x1Bc'); 
Run Code Online (Sandbox Code Playgroud)

  • 在所有平台上,这对我来说都是如此。谢谢。 (2认同)

小智 20

我正在使用Windows CMD,这对我有用

console.clear();
Run Code Online (Sandbox Code Playgroud)


Lan*_*ghe 11

只需CTRL + L在Windows上使用即可清除控制台.


Ale*_*x K 11

从 Node.JS v8.3.0开始,您可以使用clear方法:

console.clear()
Run Code Online (Sandbox Code Playgroud)

  • 我来到这里是因为这是我已经做过的事情,而且它实际上工作不一致( (2认同)

Abe*_*efe 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);
    });    
}
Run Code Online (Sandbox Code Playgroud)

  • 我的猜测是 Windows 需要“cls”,因为“clear”是 *nix 命令。 (3认同)

Hen*_*nte 6

用严格模式解决问题:

'use strict';
process.stdout.write('\x1B[2J');
Run Code Online (Sandbox Code Playgroud)


bbk*_*krz 6

使用官方的方式即可:

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...');
Run Code Online (Sandbox Code Playgroud)