विंडोज़ पर Node.Js - कंसोल को कैसे साफ़ करें


83

नोड.जेएस पर्यावरण और दर्शन में पूरी तरह से नया होने के नाते मैं कुछ सवालों के जवाब चाहता हूं। मैंने विंडोज इंस्टॉलर और नोड पैकेज मैनेजर के लिए नोड.जेएस डाउनलोड किया था। वर्तमान में नोडज एप्लिकेशन चलाने के लिए विंडोज सीएमडी प्रॉम्प्ट का उपयोग किया जा रहा है।

  1. cls कमांड विंडो या कमांड प्रॉम्प्ट में त्रुटियों को साफ करता है। वहाँ नोड के लिए एक बराबर है। जेएस? कंसोल.क्लिअर मौजूद नहीं है? (या किसी अन्य रूप में?

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

1
परिवर्तनों को देखने के लिए सर्वर को पुनरारंभ करें
रेयनोस

@Raynos मैं ऐसा कैसे करते हैं? कमांड प्रॉम्प्ट को बंद करें और इसे फिर से खोलें? आदमी मैं NodeJs से नफरत करना शुरू कर दूंगा। कंसोल को खाली करने का कोई तरीका नहीं है?
दीप्टेकटसन

1
स्पष्ट क्या सांत्वना? विंडोज़ cmd शेल या पावरशेल या यूनिक्स शेल? क्या आपने कोशिश की clsया clear?
Raynos

जवाबों:


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

यह linux पर काम करता है। खिड़कियों के बारे में निश्चित नहीं।

आप उपयोगकर्ता को कुछ इस तरह से "ट्रिक" कर सकते हैं:

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

केवल दूसरी "चाल" ने मेरे लिए काम किया, बाकी सभी जवाब बेकार थेविंडोज़ 8 पर नोडमॉन का उपयोग करना
laggingreflex

8
मामले में किसी को यह ठूंठ। विंडोज़ पर: process.stdout.write('\033c');जैसा कि '\033[2J'केवल वर्तमान एप्लिकेशन स्ट्रीम को '\033c'
क्लियर

19
यह एक एएनएसआई से बचने का कोड है , यदि y'all उत्सुक थे (तो मैं था)। \033ASCII में ESC की ऑक्टल संख्या है। ब्रैकेट के साथ यह सीएसआई (कंट्रोल सीक्वेंस इंट्रोड्यूसर) बनाता है। 0J,, 1Jऔर 2Jस्पष्ट रूप से ऊपर, नीचे और पूरी स्क्रीन, क्रमशः।
जेरेड बेक बेक

2
@TedNyberg आप सही हैं कि यह कड़े मोड (ऑक्टिकल शाब्दिक) में काम नहीं करेगा, लेकिन आपको इसके लिए "\ X1BC" या "\ X1B [EJ" का उपयोग करके प्राप्त हो सकता है।
रयान थॉमस

1
@TedNyberg हेक्स शाब्दिक (\ x ...) यूनिकोड शाब्दिक (\ u ...) के अलावा जैसे कि इकत का जवाब काम में भी है।
रेयान थॉमस

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

यह भी विंडोज़ पर काम करता है। Win7 कम से कम।


2
यह यहां सूचीबद्ध एकमात्र एस्केप अनुक्रम था जो सर्वर 2008 r2 पर मेरे लिए काम करता था और यह मेरे विंडोज 7 सिस्टम पर भी अच्छी तरह से काम करता है।
पियर्स.जॉन।

10 पर भी काम करता है।
ooyoyaya

यह स्वीकृत उत्तर होना चाहिए क्योंकि यह क्रॉस-प्लेटफ़ॉर्म है और साफ़ करने के बाद सफेद स्थान नहीं छोड़ता है।
डेविड कॉलनान

उबंटू पर काम करता है।

मैक (10.15.x) पर काम करता है
मोश

53

यह विंडोज पर कंसोल को साफ करता है और 0,0 पर कर्सर डालता है:

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

या

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

क्या आपको यकीन है कि यह विंडोज़ पर काम करता है? मुझे पता है कि खिड़कियां लगभग सभी एसीसी एस्केप कोड से नफरत करती हैं।
जोशुआ-एंडरसन

2
हां, मैं इसका इस्तेमाल कर रहा हूं। कोड की व्याख्या शायद नोडज द्वारा की जाती है।
लखटक

2
और यह सख्त मोड में काम करता है जो ऑक्टल शाब्दिक के बारे में शिकायत करता है जब \ 033 समाधानों का उपयोग किया जाता है
क्रैसेली

मैं स्वीकार किए गए उत्तर के लिए इसे पसंद करता हूं; 0,0 पर वापस रीसेट करना आपको विंडोज 10 पॉवर्सशेल में एक उचित 'सीएल' के करीब देता है।
स्टीव कूपर

49

यह मुख्य रूप से लिनक्स के लिए है, लेकिन विंडोज में काम करने की भी सूचना है।

नहीं है Ctrl + Lग्नोम टर्मिनल है कि इस तरह के रूप में टर्मिनल को साफ करता है में। इसका उपयोग पायथन, नोड जेएस या किसी भी इंटरप्रेटर के साथ किया जा सकता है जो संभवतः टर्मिनल का उपयोग करता है। मैं कई बार साफ करता हूं इसलिए यह बहुत आसान है। ग्नोम टर्मिनल में स्पष्ट करने के लिए आप बस कर सकते हैं Ctrl + L, इसका आरईपीएल से कोई लेना-देना नहीं है।


4
Ctrl + L विंडोज 8 कमांड प्रॉम्प्ट में नोड का उपयोग करते समय स्क्रीन को साफ करता है
नामीला

4
यह पसंदीदा उत्तर होना चाहिए क्योंकि नोड REPL gnom- टर्मिनल का उपयोग करता है इसलिए ctrl + l विंडोज़ पर भी काम करता है।
IGRACH

2
महान सुझाव! यह स्क्रीन को साफ करता है, केवल> और कर्सर को छोड़कर।
ब्रायली क्रिस्टोफर ऑक्सले

विंडोज 10. वह उपस्थिति देता है जिसे उसने पिछली सामग्री को देखने से हटा दिया था। यदि आप स्क्रॉल करते हैं, तो पुरानी सामग्री अभी भी फिर से प्रकट होती है।
joedotnot

इसके लिए लिनक्स में रीसेट कमांड है। लेकिन टर्मिनल में दिया जाना चाहिए।
निशांत

29

मैं एक विंडोज़ सीएमडी का उपयोग कर रहा हूं और यह मेरे लिए काम करता है

console.clear();

यह भी टर्मिनल में MacOS 10.15 (कैटालिना) पर Node.js v14.0.0 के लिए काम करता है
अमीर 3



8

विंडोज पर इसका परीक्षण नहीं किया गया है, लेकिन यह यूनिक्स पर काम करता है। चाल child_processमॉड्यूल में है। प्रलेखन की जाँच करें। आप इस कोड को एक फ़ाइल के रूप में सहेज सकते हैं और इसे अपनी आवश्यकता के अनुसार हर बार REPL को लोड कर सकते हैं।

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

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

3
मेरा अनुमान है कि आपको विंडोज के लिए "क्लस" की आवश्यकता होगी क्योंकि "स्पष्ट" एक * निक्स कमांड है।
स्टीवन वाचोन

हम रख सकते हैं clear || clsनहीं यकीन है कि अगर खिड़कियों का समर्थन ||हालांकि
godblessstrawberry

7

Node.JS v8.3.0 से शुरू करके आप विधि स्पष्ट का उपयोग कर सकते हैं :

console.clear()

मैं यहाँ आया था क्योंकि यह वही है जो मैं पहले ही कर चुका हूँ और यह वास्तव में असंगत रूप से काम करता है (
Godblessstrawberry


3

यदि आप उपयोग कर रहे हैं तो आप उपयोग VSCodeकर सकते हैं CTRL + K। मुझे पता है कि यह एक सामान्य समाधान नहीं है, लेकिन कुछ लोगों की मदद कर सकता है।


PHPStorm पर भी काम करता है। Ctrl+Kएकमात्र समाधान प्रतीत होता है, जब नोड.जेएस अगले रन पर कंसोल को पुनर्स्थापित नहीं करता है।
bencergazda

1

सनतार्गसप्पा के उत्तर और कुछ अन्य जानकारी के आधार पर, मैंने यहां पाया कि मैं क्या कर रहा हूं:

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 पैकेज के रूप में जारी किया है जिसे क्ली-क्लियर कहा जाता है ।


कुछ मज़ा: के साथ "\u001b[32;1m"आप पाठ (विंडोज कमांड लाइन में) का भी रंग सेट कर सकते हैं (- पूर्ववत कोड: "\u001b\x1b[0m") अधिक जानकारी: termsys.demon.co.uk/vtansi.htm और en.wikipedia.org/wiki/ANSI_escape_code

1

आप readlineमॉड्यूल का उपयोग कर सकते हैं :

readline.cursorTo(process.stdout, 0, 0) कर्सर को (0, 0) में ले जाता है।

readline.clearLine(process.stdout, 0) वर्तमान लाइन को साफ करता है।

readline.clearScreenDown(process.stdout) कर्सर के नीचे सब कुछ साफ करता है।

const READLINE = require('readline');

function clear() {
    READLINE.cursorTo(process.stdout, 0, 0);
    READLINE.clearLine(process.stdout, 0);
    READLINE.clearScreenDown(process.stdout);
}

0

मुझे काम करने के लिए उपरोक्त में से कोई भी नहीं मिला। मैं विकास के लिए नोडम का उपयोग कर रहा हूं और यह कंसोल को साफ करने का सबसे आसान तरीका है:

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

यह सिर्फ कंसोल को कई लाइनों को स्क्रॉल करता है ताकि आपको बाद के कंसोल के लिए एक स्पष्ट स्क्रीन मिल जाए। कमांड।

आशा है कि यह किसी की मदद करता है।


5
console.log('\n'.repeat(999))
सेंटेरिमोनन्स

0

यह कोड मेरे नोड.जेएस सर्वर कंसोल विंडोज 7 पर ठीक काम करता है।

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


0

मैक पर, मैं बस Cmd + K का उपयोग कंसोल को साफ करने के लिए करता हूं, यह करने के लिए आपकी परियोजना के अंदर कोड जोड़ने से बहुत आसान और बेहतर है।


-1

यदि आप पॉवरशेल का उपयोग कर रहे हैं, तो बेलेट, लेकिन ctrl + l काम करता है :) Powershell + चॉकलेट + नोड + npm = जीत।


-1

मेरे मामले में मैंने इसे हमेशा के लिए लूप में किया और कंसोल में कभी भी एक ही लाइन में एक नंबर दिखाया:

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, आदि)।


-2

Ctrl + L यह सबसे अच्छा, सरल और सबसे प्रभावी विकल्प है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.