همانطور که میدانید، از console.log برای چاپ خروجی در کنسول استفاده میشود. اما شاید بخواهید ورودیهایی را نیز از کاربر داخل کنسول دریافت کنید. در ادامه با روزشهای انجام این کار آشنا خواهیم شد.
روش اول: stdin
در اینجا، رویداد data را توسط stdin تعریف میکنیم؛ که داخل کال بک آن، دادهای که کاربر وارد کرده است دریافت میشود:
process.stdout.write('Enter your name: '); process.stdin.addListener("data", function (data) { var name = data.toString().trim(); console.log("Your name is " + name); });
از process.stdout.write برای چاپ یک پیام بدون رفتن به خط بعدی استفاده شده است. سپس داخل کال بک، داده را پس از دریافت به خود کاربر نمایش دادیم. اما این کال بک، بارها و بارها اجرا خواهد شد و در واقع، هربار پس از اتمام آن، یک ورودی جدید از کاربر تقاضا میشود! لذا میتوانید بهسادگی از دستور زیر در انتهای کال بک، برای حذف رویداد تعریف شده استفاده کرده و از کال بک خارج شد:
process.stdin.removeListener('data');
روش دوم: استفاده از readline-sync
ابتدا ماژول readline-sync زیر را نصب کنید:
npm i readline-sync
حال بهسادگی میتوانید با نوشتن تنها یک خط، ورودی را از کاربر دریافت کنید و همچنین قبل از آن، پیامی را به او نمایش دهید تا کاربر ورودی را مقابل پیام و نه در خط بعد، بنویسد. بصورت زیر:
var readlineSync = require('readline-sync'); var name = readlineSync.question('Enter yout name: '); console.log('Your name is ' + name); readlineSync.question('Enter something to exit.'); close();
نظرات ثبت شده بدون دیدگاه