Node.js API詳解之 tty功能與用法實(shí)例分析
本文實(shí)例講述了Node.js API詳解之 tty功能與用法。分享給大家供大家參考,具體如下:
tty 可以理解為終端的意思。tty 模塊提供終端相關(guān)的接口,用來獲取終端的行數(shù)列數(shù)等。
通過 const tty = require(‘tty'); 的方式引用 tty 模塊
process.stdout.isTTY
說明:
此屬性位于 process 模塊,用來判斷 Node.js 是否運(yùn)行在一個(gè) TTY 環(huán)境中
demo:
console.log(process.stdout.isTTY) //true
tty.ReadStream 類
說明:
tty.ReadStream 類是 net.Socket 的一個(gè)子類,表示 TTY 的可讀部分。
正常情況下,process.stdin 是 Node.js 進(jìn)程中唯一的 tty.ReadStream 實(shí)例,無需創(chuàng)建更多的實(shí)例
也就是說不需要我們手動(dòng) new 一個(gè)實(shí)例,直接使用 process.stdin 即可。
readStream.isRaw
說明:
是否為原始模式,默認(rèn)值為 false 。如果TTY被配置成原始模式,該屬性值為 true
demo:
console.log(process.stdin.isRaw) //false
readStream.setRawMode(mode)
說明:
該方法用來將 TTY 配置為原始模式。原始模式下,輸入按字符逐個(gè)生效,終端對(duì)字符的所有特殊處理會(huì)被禁用,包括應(yīng)答輸入的字符。 該模式中 CTRL+C 不再產(chǎn)生 SIGINT。
mode:傳遞 true 或者 false 來關(guān)閉和開啟原始模式,對(duì)應(yīng) readStream.isRaw 的值也會(huì)發(fā)生改變。
demo:
process.stdin.setRawMode(true); // 開啟原始模式 console.log(process.stdin.isRaw); //true process.stdin.setRawMode(false); // 關(guān)閉原始模式 console.log(process.stdin.isRaw); //false
tty.WriteStream 類
說明:
tty.WriteStream 類是 net.Socket 的一個(gè)子類,表示 TTY 的可寫部分。
正常情況下,process.stdout 和 process.stderr 是 Node.js 進(jìn)程中唯一的 tty.WriteStream 實(shí)例,無需創(chuàng)建更多的實(shí)例。
writeStream.columns
說明:
此屬性用來表示當(dāng)前TTY具有的列數(shù),當(dāng)resize時(shí)間被觸發(fā)時(shí),該屬性會(huì)被更新。
demo:
console.log(process.stdout.columns); //88
writeStream.rows
說明:
次屬性用來表示當(dāng)前TTY具有的行數(shù),當(dāng)resize時(shí)間被觸發(fā)時(shí),該屬性會(huì)被更新。
demo:
console.log(process.stdout.rows); //40
Event: resize
說明:
當(dāng)TTY窗口發(fā)生變化時(shí),會(huì)觸發(fā)resize事件。
demo:
process.stdout.on('resize', () => { console.log('窗口大小發(fā)生變化!'); console.log(`${process.stdout.columns}x${process.stdout.rows}`); }); // > 窗口大小發(fā)生變化! // 86x40 // > 窗口大小發(fā)生變化! // 85x40 // > 窗口大小發(fā)生變化! // 84x40
tty.isatty(fd)
說明:
如果給定的 fd 有關(guān)聯(lián) TTY,則返回 true,否則返回 false。
fd 數(shù)值類型的文件描述符。
demo:
console.log(tty.isatty(2)); //true console.log(tty.isatty(200)); //false
希望本文所述對(duì)大家node.js程序設(shè)計(jì)有所幫助。
相關(guān)文章
詳解node如何讓一個(gè)端口同時(shí)支持https與http
眾所周知node是一個(gè)高性能的web服務(wù)器,使用它可以很簡(jiǎn)單的創(chuàng)建一個(gè)http或https的服務(wù)器。這篇文章主要介紹了詳解node如何讓一個(gè)端口同時(shí)支持https與http2017-07-07nodejs基于express實(shí)現(xiàn)文件上傳的方法
這篇文章主要介紹了nodejs基于express實(shí)現(xiàn)文件上傳的方法,結(jié)合實(shí)例形式分析了nodejs基于express框架實(shí)現(xiàn)文件上傳功能的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2018-03-03Visual?Studio?Code中npm腳本找不到圖文解決辦法
這篇文章主要給大家介紹了關(guān)于Visual?Studio?Code中npm腳本找不到的圖文解決辦法,做前端開發(fā)如果項(xiàng)目達(dá)到了一定的規(guī)模就離不開npm了,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07windows如何把已安裝的nodejs高版本降級(jí)為低版本(圖文教程)
這篇文章主要介紹了windows如何把已安裝的nodejs高版本降級(jí)為低版本,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12