Node.js環境と哲学にまったく新しいので、いくつかの質問に対する答えが欲しいです。 Windowsインストーラー用のnode.jsとノードパッケージマネージャーをダウンロードしました。WindowsCmdプロンプトは現在、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");
console.log('\033[2J');
これはLinuxで機能します。ウィンドウについてはわかりません。
次のような方法でユーザーを「だます」ことができます。
var lines = process.stdout.getWindowSize()[1];
for(var i = 0; i < lines; i++) {
console.log('\r\n');
}
process.stdout.write('\033c');
これはWindowsでも機能します。少なくとも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 Gnomeターミナルで、ターミナル自体をクリアします。 Python、Node JSまたはおそらく端末を使用するインタープリターで使用できます。何度もクリアする傾向があるため、これは非常に便利です。 Ctrl + L、REPL実行中とは関係ありません。
また、Windowsの厳格モードでコンソールをクリアするには:
'use strict';
process.stdout.write('\x1Bc');
私はWindows CMDを使用していますが、これは私のために働いた
console.clear();
単にCTRL + L
を押して、コンソールをクリアします。
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);
});
}
ストリクトモードの問題を解決するには:
'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
。私はこれが一般的な解決策ではないことを知っていますが、一部の人々を助けるかもしれません。
ノードにはconsole.clear()
がありません。
ES6 JavaScriptで ''.repeat()
文字列メソッド を受け取ったため、次のことができます。
_console.log('\n'.repeat(1000));
_
基本的には1000の空行を印刷し、console.clear()
をシミュレートします
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パッケージとしてリリースしました。
私の場合、私はそれを永遠にループし、コンソールに数字を一行で表示するようにしました:
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など)。
遅ればせながら、PowerShellを使用している場合、Ctrl + LはWindowsで機能します:) Powershell +チョコレート+ノード+ npm =勝利。
このコードは、node.jsサーバーコンソールWindows 7で正常に機能します。
process.stdout.write("\u001b[0J\u001b[1J\u001b[2J\u001b[0;0H\u001b[0;0W");