歡迎您光臨本站 註冊首頁

Node.js API詳解之 tty功能與用法實例分析

←手機掃碼閱讀     火星人 @ 2020-05-05 , reply:0

本文實例講述了Node.js API詳解之 tty功能與用法。分享給大家供大家參考,具體如下:
tty 可以理解為終端的意思。tty 模塊提供終端相關的接口,用來獲取終端的行數列數等。
通過 const tty = require(‘tty'); 的方式引用 tty 模塊
process.stdout.isTTY
說明:
此屬性位於 process 模塊,用來判斷 Node.js 是否運行在一個 TTY 環境中
demo:
console.log(process.stdout.isTTY) //true
tty.ReadStream 類
說明:
tty.ReadStream 類是 net.Socket 的一個子類,表示 TTY 的可讀部分。
正常情況下,process.stdin 是 Node.js 進程中唯一的 tty.ReadStream 實例,無需創建更多的實例
也就是說不需要我們手動 new 一個實例,直接使用 process.stdin 即可。
readStream.isRaw
說明:
是否為原始模式,默認值為 false 。如果TTY被配置成原始模式,該屬性值為 true
demo:
console.log(process.stdin.isRaw) //false
readStream.setRawMode(mode)
說明:
該方法用來將 TTY 配置為原始模式。原始模式下,輸入按字符逐個生效,終端對字符的所有特殊處理會被禁用,包括應答輸入的字符。 該模式中 CTRL+C 不再產生 SIGINT。
mode:傳遞 true 或者 false 來關閉和開啟原始模式,對應 readStream.isRaw 的值也會發生改變。
demo:
process.stdin.setRawMode(true); // 開啟原始模式 console.log(process.stdin.isRaw); //true process.stdin.setRawMode(false); // 關閉原始模式 console.log(process.stdin.isRaw); //false
tty.WriteStream 類
說明:
tty.WriteStream 類是 net.Socket 的一個子類,表示 TTY 的可寫部分。
正常情況下,process.stdout 和 process.stderr 是 Node.js 進程中唯一的 tty.WriteStream 實例,無需創建更多的實例。
writeStream.columns
說明:
此屬性用來表示當前TTY具有的列數,當resize時間被觸發時,該屬性會被更新。
demo:
console.log(process.stdout.columns); //88
writeStream.rows
說明:
次屬性用來表示當前TTY具有的行數,當resize時間被觸發時,該屬性會被更新。
demo:
console.log(process.stdout.rows); //40
Event: resize
說明:
當TTY窗口發生變化時,會觸發resize事件。
demo:
process.stdout.on('resize', () => { console.log('窗口大小發生變化!'); console.log(`${process.stdout.columns}x${process.stdout.rows}`); }); // > 窗口大小發生變化! // 86x40 // > 窗口大小發生變化! // 85x40 // > 窗口大小發生變化! // 84x40
tty.isatty(fd)
說明:
如果給定的 fd 有關聯 TTY,則返回 true,否則返回 false。
fd 數值類型的文件描述符。
demo:
console.log(tty.isatty(2)); //true console.log(tty.isatty(200)); //false
希望本文所述對大家node.js程序設計有所幫助。


[火星人 ] Node.js API詳解之 tty功能與用法實例分析已經有320次圍觀

http://coctec.com/docs/javascript/show-post-232966.html