program story

Windows의 Node.js-콘솔을 지우는 방법

inputbox 2020. 10. 6. 08:09
반응형

Windows의 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");
    

코드를 아래로 변경하고 브라우저를 새로 고침하여 콘텐츠 유형이 변경되지 않는지 확인했습니다. 변경 사항을 보려면 어떻게해야합니까?

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");

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

이것은 리눅스에서 작동합니다. 창문에 대해 잘 모르겠습니다.

다음과 같이 사용자를 "속일"수 있습니다.

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

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

이것은 창에서도 작동합니다. 적어도 Win7.


이것은 Windows에서 콘솔을 지우고 커서를 0,0에 놓습니다.

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

또는

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

이것은 주로 Linux 용 이지만 Windows에서도 작동하는 것으로보고되었습니다.

Ctrl + L그놈 터미널 에는 터미널을 지우는 것이 있습니다. Python, Node JS 또는 아마도 터미널을 사용하는 모든 인터프리터와 함께 사용할 수 있습니다. 나는 여러 번 지우는 경향이 있으므로 이것은 매우 편리합니다. Gnome Terminal에서 명확한 작업을 수행하려면 그냥 할 수 있습니다 Ctrl + L. REPL 실행과는 아무 관련이 없습니다.


Windows에서 엄격 모드에있는 동안 콘솔을 지우려면 :

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

나는 Windows CMD를 사용하고 있으며 이것은 나를 위해 일했습니다.

console.clear();

CTRL + L창에서 사용 하여 콘솔을 지우십시오.


Windows에서 테스트하지는 않았지만 유닉스에서 작동합니다. 트릭은 child_process모듈에 있습니다. 문서를 확인하십시오. 이 코드를 파일로 저장하고 필요할 때마다 REPL에로드 할 수 있습니다.

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

function clear(){
    exec('clear', function(error, stdout, stderr){
        util.puts(stdout);
    });    
}

엄격 모드 문제를 해결하려면 :

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

위의 어느 것도 작동하지 못했습니다. 나는 개발을 위해 nodemon을 사용하고 있으며 이것이 콘솔을 지우는 가장 쉬운 방법임을 알았습니다.

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

콘솔을 여러 줄로 스크롤하여 후속 console.log 명령에 대한 명확한 화면을 얻습니다.

누군가에게 도움이되기를 바랍니다.


당신이 사용하는 경우 VSCode당신은 사용할 수 있습니다 CTRL + K. 나는 이것이 일반적인 해결책은 아니지만 일부 사람들에게 도움이 될 수 있음을 알고 있습니다.


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 패키지로 출시했습니다 .


console.clear()노드에 없습니다 .

ES6 JavaScript에서는 ''.repeat()method 문자열을 받았 으므로 다음을 수행 할 수 있습니다.

console.log('\n'.repeat(1000));

기본적으로 1000 개의 빈 줄을 인쇄하고 console.clear()


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


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");


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).


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

참고URL : https://stackoverflow.com/questions/9006988/node-js-on-windows-how-to-clear-console

반응형