Подтвердить что ты не робот

Node.Js на окнах - Как очистить консоль

Будучи совершенно новым в среде и философии node.js, я бы хотел получить ответы на несколько вопросов. Я загрузил node.js для установщика Windows, а также диспетчер пакетов node. В настоящее время для запуска приложений nodejs используется команда Windows Cmd.

  • 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");
4b9b3361

Ответ 1

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

Это работает на linux. Не уверен в окнах.

Вы можете "обмануть" пользователя, используя что-то вроде этого:

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

Ответ 2

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

Это также работает с окнами. Win7 по крайней мере.

Ответ 3

Это очищает консоль от Windows и помещает курсор в 0,0:

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

или

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

Ответ 4

Это для Linux, но, как сообщается, работает в Windows.

В терминале Gnome есть Ctrl + L, который очищает терминал как таковой. Он может использоваться с Python, Node JS или любым интерпретатором, предположительно использующим терминал. Я склоняюсь к разуму много раз, поэтому это очень удобно. Созданный в терминале Gnome, вы можете просто сделать Ctrl + L, это не имеет никакого отношения к запуску REPL.

Ответ 5

И очистить консоль в строгом режиме в Windows:

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

Ответ 6

Я использую Windows CMD, и это сработало для меня

console.clear();

Ответ 7

Просто используйте CTRL + L в окнах, чтобы очистить консоль.

Ответ 8

Не тестировал это в 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);
    });    
}

Ответ 9

Чтобы решить проблемы со строгим режимом:

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

Ответ 10

Я не мог заставить любой из вышеперечисленных работать. Я использую nodemon для разработки и нашел это самым простым способом очистки консоли:

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

Он просто прокручивает консоль несколькими строками, чтобы получить четкий экран для последующих команд console.log.

Надеюсь, что это поможет кому-то.

Ответ 11

Если вы используете VSCode вы можете использовать CTRL + K Я знаю, что это не общее решение, но может помочь некоторым людям.

Ответ 12

На основании ответа 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);
}

Чтобы упростить работу, я выпустил это как пакет npm под названием cli-clear.

Ответ 13

В node нет console.clear().

С ES6 JavaScript получил ''.repeat() метод string, и поэтому мы можем сделать:

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

который будет в основном печатать 1000 пустых строк и имитировать a console.clear()

Ответ 14

Задержан, но ctrl + l работает в окнах, если вы используете powershell:) Powershell + chocolatey + node + npm = выигрыш.

Ответ 15

Этот код отлично работает на моей серверной консоли node.js Windows 7.

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

Ответ 16

В моем случае я сделал это, чтобы зациклить и показать в консоли число в одной строке:

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

При запуске этого кода вы увидите то же сообщение "Количество сообщений в очереди Тестовая очередь: 1". и изменение номера (1..2..3 и т.д.).

Ответ 17

Ctrl + L Это лучший, самый простой и эффективный вариант.

Ответ 18

Если вы используете команду Windows cls в консоли