溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Node.js API中tty有什么功能和用法

發(fā)布時間:2020-07-30 13:44:24 來源:億速云 閱讀:835 作者:小豬 欄目:web開發(fā)

小編這次要給大家分享的是Node.js API中tty有什么功能和用法,文章內(nèi)容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

tty 可以理解為終端的意思。tty 模塊提供終端相關(guān)的接口,用來獲取終端的行數(shù)列數(shù)等。

通過 const tty = require(‘tty'); 的方式引用 tty 模塊

process.stdout.isTTY

說明:

此屬性位于 process 模塊,用來判斷 Node.js 是否運行在一個 TTY 環(huán)境中

demo:

console.log(process.stdout.isTTY)
//true

tty.ReadStream 類

說明:

tty.ReadStream 類是 net.Socket 的一個子類,表示 TTY 的可讀部分。

正常情況下,process.stdin 是 Node.js 進程中唯一的 tty.ReadStream 實例,無需創(chuàng)建更多的實例

也就是說不需要我們手動 new 一個實例,直接使用 process.stdin 即可。

readStream.isRaw

說明:

是否為原始模式,默認(rèn)值為 false 。如果TTY被配置成原始模式,該屬性值為 true

demo:

console.log(process.stdin.isRaw)
//false

readStream.setRawMode(mode)

說明:

該方法用來將 TTY 配置為原始模式。原始模式下,輸入按字符逐個生效,終端對字符的所有特殊處理會被禁用,包括應(yīng)答輸入的字符。 該模式中 CTRL+C 不再產(chǎn)生 SIGINT。

mode:傳遞 true 或者 false 來關(guān)閉和開啟原始模式,對應(yīng) readStream.isRaw 的值也會發(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 的一個子類,表示 TTY 的可寫部分。

正常情況下,process.stdout 和 process.stderr 是 Node.js 進程中唯一的 tty.WriteStream 實例,無需創(chuàng)建更多的實例。

writeStream.columns

說明:

此屬性用來表示當(dāng)前TTY具有的列數(shù),當(dāng)resize時間被觸發(fā)時,該屬性會被更新。

demo:

console.log(process.stdout.columns);
//88

writeStream.rows

說明:

次屬性用來表示當(dāng)前TTY具有的行數(shù),當(dāng)resize時間被觸發(fā)時,該屬性會被更新。

demo:

console.log(process.stdout.rows);
//40

Event: resize

說明:

當(dāng)TTY窗口發(fā)生變化時,會觸發(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

看完這篇關(guān)于Node.js API中tty有什么功能和用法的文章,如果覺得文章內(nèi)容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI