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");
Ответы
Ответ 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 в консоли