ماژول کنسول در نود جی اس کنسول دیباگی مهیا میکنند شبیه به آنچه مرورگرهای وب در مکانیزم کنسول جاوا اسکرپت برای ما فراهم میکنند. این ماژول دو جزء خروجی صادر میکند:
۱) کلاس کنسول: که شامل متدهایی همچون console.log()، console.warn() و console.error() میباشد که میتوان از آنها در نوشتن استریمهای نود جی اس بهره برد.
۲) نمونه عمومی کنسول: متدی که از قبل پیکرهبندی شده و برای نوشتن در process.stderr و process.stdout() بدون فراخوانی انحصاری ماژول require(‘console’) مورد استفاده قرار میگیرد.
console.log() برای چاپ در stdout استفاده میشود و آرگومانهای مختلفی قبول میکند. اجازه دهید با مثالهایی تنوع کاربرد console.log را ببینیم:
//using ' ' to print console.log('1 : hello world !'); //using " " to print console.log("2 : this will also work"); var str = 'nodejsera'; var val = 25; //printing a string console.log(str); //3 //printing a variable and replacing the //value of variable in place of %d console.log('4: Value of val is : %d' , val); //replacing a string in place of %s console.log('5: %s' , 'this will be printed after 5'); //concatinating in console console.log("6 : str = " + str);
خروجی به صورت زیر است:
>node "console.log().js" 1 : hello world ! 2 : this will also work nodejsera 4: Value of val is : 25 5: this will be printed after 5 6 : str = nodejsera
قطعه کد زیر برای ایجاد یک کنسول جدید نوشته شده است. دقت کنید که خروجی در stdout.log و خطاها (درصورت وجود) در stderr.log دخیره خواهند شد:
var ws = require('fs'); const { Console } = require('console'); const output = ws.createWriteStream('./stdout.log'); const errOutput = ws.createWriteStream('./stderr.log'); // custom simple print const print = new Console(output, errOutput); //Now we can use it like console const roll = 839147; print.log('roll: %d', roll); print.log('This will be stored in a file');
مقادیری که به عنوان خروجی در stdout.log ذخیره خواهند شد عبارتند از:
roll: 839147 This will be stored in a file
این متد برای پاکسازی کنسول به کار میرود. پاکسازی کنسول زمانی مفید است که با یک برنامه بزرگ سر و کار دارید و درآن خروجیهای زیاد دارید و در زمان دیباگ، میخواهید خروجی را فقط از یک نقطه خاص به بعد ببینید. بعنوان مثال، در قطعه کد زیر، ما قصد داریم value را که دربرنامه تغییر میکند چاپ کنیم، بنابراین مقادیر قبلی را از کنسول پاک می کنیم تا مقدار نهایی را در پایان ببینیم. این یک مثال بسیار ساده از چگونگی بهره بردن از متد console.clear است.
نکته: از نود جی اس نسخه LTS6.11.3 به بعد استفاده کنید. در نسخه های قبلی این امکانات وجود ندارند.
//Available in Current Version var value = 10; console.log("Value : %d", value); console.clear(); value *= value; console.log("Value : %d", value);
خروجی قطعه کد فوق به شرح زیر است:
>node "console.clear().js" Value : 100
این ماژول برای کار با برچسبهای داخلی به کار میرود و هربار که console.count() را با برچسب مشخصی فراخوانی کنید، خروجی آن در stodut نوشته میشود. بعنوان مثال در قطعه کد زیر، برچسبهای default ، remo و rj داریم که به کمک این متد تعداد وقوعشان را در کنسول چاپ میکنیم. اگر برچسبی ذکر نشود، بصورت پیش فرض برچسب default درنظر گرفته میشود.
نکته: از نسخه LTS6.11.3 به بعد استفاده کنید. در نسخه های قبلی وجود ندارد.
//Available in current version //This code counts the score of remo , rj and //default score which goes to none of them console.count('default'); console.count('remo'); console.count('rj'); console.count('remo'); console.count('remo'); console.count('rj'); console.count();
خروجی هم به صورت زیر خواهید دید:
>node "console.count().js" default: 1 remo: 1 rj: 1 remo: 2 remo: 3 rj: 2 default: 2
این متد شمارنده یک برچسب داخلی خاص را ریست میکند. اگر برچسبی ذکر نشود، بطور پیش فرض برچسب default را ریست میکند.
نکته: از نسخه LTS6.11.3 به بعد استفاده کنید. در نسخه های قبلی وجود ندارد.
//Available in current version //This code counts the occurrences of remo , rj and default console.count('default'); console.count('remo'); //remo=1 console.count('remo'); //remo=2 console.count('rj'); //rj=1 console.countReset('remo'); //remo = 1 console.count('remo'); //remo=2 console.countReset('remo'); //remo=1 console.count('rj'); //rj=2 console.count(); //default=2
و خروجی هم به صورت زیر:
node "console.countReset().js" default: 1 remo: 1 remo: 2 rj: 1 remo: 1 rj: 2 default: 2
این متد برای چاپ در stderr به کار میرود. آرگومانهای متنوعی میگیرد که اولین آن آرگومان اصلی و مابقی مقادیر جایگزین هستند. قطعه کد زیر برای همین موضوع ارائه شده است.
نکته: از نسخه LTS6.11.3 به بعد استفاده کنید. در نسخه های قبلی وجود ندارد.
var x = 10; var y = 20; var result = x/y; if(result == 2) { console.log("Result : %d".result) } else { console.error("Error : Error in Positioning Operands"); }
خروجی به صورت زیر خواهد بود:
>node "console.error().js" Error in Positioning Operands
متد console.time() برای راه اندازی یک تایمر جهت اندازگیری مدت زمان اجرای عملیات به کار میرود. هر تایمر با یک برچسب انحصاری مشخص میشود. برای متوقف کردن تایمر باید برچسب آن را به همراه متد cosole.timeEnd به کار ببریم. زمان به کمک متد console.timeEnd() و در مقیاس بصورت میلی ثانیه در stdout چاپ خواهد شد.
console.time('division'); var x = 10; var y = 20; var result = x/y; if(result == 2) { console.log("Result : %d".result) } else { console.log("Result : " + result); } console.timeEnd('division');
خروجی به صورت زیر خواهد بود:
node "console.time().js" Result : 0.5 division: 2.895ms
این متد همانند متد console.error است و برای چاپ در stderr به کار میرود. قطعه کد زیر را ملاحظه کنید:
var x = 10; var y = 20; var result = x/y; if ( (result % 2) == 0) { console.log("Result : %d".result) } else { console.warn("Warning : Decimal number"); }
خروجی به صورت زیر خواهد بود:
>node "console.warn().js" Warning : Decimal number
در این بخش از سری آموزشهای نود جی اس موارد زیر را بررسی کردیم:
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.