উইন্ডোজে নোড.জে - কীভাবে কনসোল সাফ করবেন


86

নোড.জেএস এর পরিবেশ এবং দর্শনে সম্পূর্ণ নতুন হওয়া আমি কয়েকটি প্রশ্নের উত্তর চাই। আমি উইন্ডোজ ইনস্টলার এবং নোড প্যাকেজ ম্যানেজারের জন্য নোড.জেএস ডাউনলোড করেছি W উইন্ডোস সিএমডি প্রম্পট বর্তমানে নোডেজ অ্যাপস চালানোর জন্য ব্যবহৃত হচ্ছে।

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

4
পরিবর্তনগুলি দেখতে সার্ভারটি পুনরায় চালু করুন
রায়নোস

@ রায়নস কীভাবে আমি এটি করি। কমান্ড প্রম্পটটি বন্ধ করে আবার খুলুন? মানুষ আমি তখন নোডজেসকে ঘৃণা করতে শুরু করব। কনসোল সাফ করার কোনও উপায় নেই?
ডিপটেকটনস

4
কি কনসোল সাফ করুন? উইন্ডোজ সেন্টিমিডি শেল বা পাওয়ারশেল বা ইউনিক্স শেল? আপনি চেষ্টা করেছেন clsনাকি clear?
রায়নোস

উত্তর:


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

এটি লিনাক্সে কাজ করে। উইন্ডো সম্পর্কে নিশ্চিত নয়।

আপনি ব্যবহারকারীকে এরকম কিছু ব্যবহার করে "চালনা" করতে পারেন:

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

কেবলমাত্র দ্বিতীয় "কৌতুক" আমার পক্ষে কাজ করেছিল, বাকি সমস্ত উত্তর অকেজো ছিলউইন্ডোজ 8-নোডমন ব্যবহার করে
laggingreflex

8
যদি কেউ এই stubles হয়। উইন্ডোজগুলিতে process.stdout.write('\033c');'\033[2J''\033c'
:,

19
এটি একটি এএনএসআই পলায়নের কোড , যদি আপনি সমস্ত কৌতূহলী হন (আমি ছিলাম)। \033হওয়া ASCII মধ্যে চট্টগ্রাম সিটি কর্পোরেশন এর অকট্যাল সংখ্যা। বন্ধনী দ্বারা এটি সিএসআই গঠন করে (কন্ট্রোল সিকোয়েন্স ইন্ট্রোডোসার)। 0J, 1Jএবং 2Jশীর্ষ, নীচে এবং পুরো স্ক্রিন যথাক্রমে সাফ করুন।
জারেড বেক

4
@ টেডনিবার্গ আপনি সঠিক যে এটি কঠোর মোডে (অক্টাল আক্ষরিক) কাজ করবে না তবে আপনি যা প্রয়োজন তার উপর নির্ভর করে "\ x1BC" বা "\ x1B [EJ" ব্যবহার করে আপনি এটি পেতে পারেন।
রায়ান টমাস

4
@ টেডনিবার্গ হেক্স লিটারেল (\ x ...) ইউনিকোড লিটারাল (\ u ...) ছাড়াও যেমন ইকতাকের উত্তর কাজের ক্ষেত্রেও।
রায়ান টমাস

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

এটি উইন্ডোতেও কাজ করে। কমপক্ষে Win7।


4
এটি এখানে তালিকাভুক্ত একমাত্র পালানোর ক্রম ছিল যা সার্ভার ২০০৮ r2 এ আমার জন্য কাজ করেছিল এবং এটি আমার উইন্ডোজ 7 সিস্টেমেও দুর্দান্তভাবে কাজ করে।
pierce.jason

পাশাপাশি কাজ 10।
oooyaya

এটি গ্রহণযোগ্য উত্তর হওয়া উচিত কারণ এটি ক্রস প্ল্যাটফর্ম এবং সাফ করার পরে সাদা স্থান ছেড়ে যায় না।
ডেভিড কলানান

উবুন্টুতে কাজ করে।

4
ম্যাক (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");

আপনি কি নিশ্চিত যে এটি উইন্ডোতে কাজ করে? আমি জানি যে উইন্ডোজ প্রায় সমস্ত অ্যাসি এস্কেপ কোডগুলি ঘৃণা করে।
জোশুয়া-অ্যান্ডারসন

4
হ্যাঁ, আমি এটি ব্যবহার করছি। কোডগুলি সম্ভবত নোডেজ দ্বারা ব্যাখ্যা করা হয়।
লকটক

4
এবং এটি কঠোর মোডে কাজ করে যা \ 033 সমাধানগুলি ব্যবহার করার সময় অক্টাল আক্ষরিক সম্পর্কে অভিযোগ করে
ক্রিস্কেল্লি

আমি এটি গ্রহণযোগ্য উত্তরের চেয়ে পছন্দ করি; 0,0 এ পুনরায় সেট করা আপনাকে উইন্ডোজ 10 পাওয়ারশেলের একটি যথাযথ 'ক্লস' এর আরও কাছে দেয়।
স্টিভ কুপার

50

এটি মূলত লিনাক্সের জন্য তবে উইন্ডোজটিতেও কাজ করার কথা রয়েছে।

Ctrl + Lজিনোম টার্মিনালে এমন আছে যা টার্মিনালটি সাফ করে। এটি পাইথন, নোড জেএস বা কোনও ইন্টারপ্রেটারের সাথে সম্ভবত ব্যবহার করা যেতে পারে যা সম্ভবত টার্মিনাল ব্যবহার করে। আমি অনেক বার সাফ করার ঝোঁক তাই এটি খুব সহজ। জিনোম টার্মিনালে পরিষ্কার করার ইনস্ট্যানড আপনি কেবলমাত্র করতে পারেন Ctrl + L, এটি আরপিএল চালানোর সাথে কোনও সম্পর্ক রাখে না।


4
উইন্ডোজ 8 কমান্ড প্রম্পটে নোড ব্যবহার করার সময় Ctrl + L স্ক্রিনটি সাফ করে
নমিলা

4
এটি উত্তর পছন্দ করা উচিত কারণ নোড REPL gnom- টার্মিনাল ব্যবহার করে তাই ctrl + l উইন্ডোতে কাজ করে।
ইগ্রাচ

4
দুর্দান্ত পরামর্শ! এটি কেবল>> এবং কার্সার রেখে স্ক্রিন সাফ করে।
ব্রিলি ক্রিস্টোফার অক্সলে

উইন্ডোজ ১০. পূর্ববর্তী সামগ্রীগুলি দর্শন ছাড়াই স্ক্রোল করে এমন সাফ দেয় যা দেয়। আপনি যদি স্ক্রোল আপ করেন তবে পুরানো সামগ্রীটি আবার প্রদর্শিত হবে।
joedotnot

এর জন্য লিনাক্সে রিসেট কমান্ড রয়েছে। তবে টার্মিনালে দেওয়া উচিত।
নিশান্ত

30

আমি একটি উইন্ডোজ সিএমডি ব্যবহার করছি এবং এটি আমার জন্য কাজ করেছে

console.clear();

এটি টার্মিনালের MacOS 10.15 (ক্যাটালিনা) তে নোড.জেএস ভি 14.0.0 এর জন্যও কাজ করে
আমির

29

এবং উইন্ডোজটিতে কঠোর মোডে থাকাকালীন কনসোলটি সাফ করার জন্য:

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

এই একজন কাজ করেছে এবং জেএসডোক ত্রুটিটি
জেমস ক্যামেরন

সমস্ত প্ল্যাটফর্মেও কাজ করেছেন (সিএমডি, সিএমডার, গিটব্যাশ, উবুন্টু)।
ভ্যালেন্টাইন পি

আমি এটি দিয়ে চেষ্টা করেছি cosole.log('\x1Bc')এবং এটি কাজ করে, অন্যান্য সমাধানগুলির চেয়ে সহজ, কঠোর মোড প্রয়োজন ছিল না।
27px

ম্যাক ওএস মোজাভেতে কাজ করে এবং সম্পূর্ণ লগ সাফ করে।
টমাসজ সাওওয়ারা


8

উইন্ডোজে এটি পরীক্ষা করা হয়নি তবে ইউনিক্সে কাজ করে। কৌশলটি child_processমডিউলটিতে রয়েছে। ডকুমেন্টেশন চেক করুন। আপনি এই কোডটি ফাইল হিসাবে সংরক্ষণ করতে পারেন এবং প্রতিবার যখনই প্রয়োজন হবে তখনই এটি আরপিএলে লোড করতে পারেন।

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

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

4
আমার ধারণা হ'ল আপনার উইন্ডোজের জন্য "ক্লাস" লাগবে যেহেতু "ক্লিয়ার" একটি * নিক্স কমান্ড।
স্টিভেন ওয়াচন

clear || clsউইন্ডোজ ||যদিও সমর্থন করে তা আমরা নিশ্চিত করতে পারি না
Godblessstrawberry



3

আপনি যদি ব্যবহার করেন তবে আপনি ব্যবহার VSCodeকরতে পারেন CTRL + K। আমি জানি এটি একটি জেনেরিক সমাধান নয় তবে কিছু লোককে সহায়তা করতে পারে।


পিএইচপিএসটর্মেও কাজ করে। 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);
}

জিনিসগুলিকে আরও সহজ করার জন্য , আমি এটি ক্লাই -ক্লিয়ার নামে একটি এনএমপি প্যাকেজ হিসাবে প্রকাশ করেছি ।


কিছু মজা: সঙ্গে "\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");

এটি কেবল কনসোলকে বেশ কয়েকটি লাইন স্ক্রোল করে যাতে আপনি পরবর্তী কনসোল.লগ আদেশের জন্য একটি পরিষ্কার স্ক্রিন পান get

আশা করি এটি কাউকে সাহায্য করবে।


4
console.log('\n'.repeat(999))
করিসিম্মন্স

0

এই কোডটি আমার নোড.জেএস সার্ভার কনসোল উইন্ডোজ 7 এ সূক্ষ্মভাবে কাজ করে।

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


-1

বিলেটেড, তবে উইন্ডোজগুলিতে সিটিআর + এল কাজ করে যদি আপনি পাওয়ারশেল ব্যবহার করেন :) পাওয়ারশেল + চকোলেটি + নোড + এনপিএম = বিজয়ী।


-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

ম্যাকের জন্য, আমি কনসোলটি সাফ করার জন্য কেবল সিএমডি + কে ব্যবহার করি, এটি করার জন্য আপনার প্রকল্পের কোড যুক্ত করার চেয়ে খুব সহজ এবং ভাল।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.