Node.js v25.0.0 文件
- Node.js v25.0.0
-
目錄
- TTY
- 類:
tty.ReadStream - 類:
tty.WriteStreamnew tty.ReadStream(fd[, options])new tty.WriteStream(fd)- 事件:
'resize' writeStream.clearLine(dir[, callback])writeStream.clearScreenDown([callback])writeStream.columnswriteStream.cursorTo(x[, y][, callback])writeStream.getColorDepth([env])writeStream.getWindowSize()writeStream.hasColors([count][, env])writeStream.isTTYwriteStream.moveCursor(dx, dy[, callback])writeStream.rows
tty.isatty(fd)
- 類:
- TTY
-
索引
- 斷言測試
- 非同步上下文跟蹤
- 非同步鉤子
- 緩衝區
- C++ 外掛
- 使用 Node-API 的 C/C++ 外掛
- C++ 嵌入器 API
- 子程序
- 叢集
- 命令列選項
- 控制檯
- 加密
- 偵錯程式
- 已棄用的 API
- 診斷通道
- DNS
- 域
- 環境變數
- 錯誤
- 事件
- 檔案系統
- 全域性物件
- HTTP
- HTTP/2
- HTTPS
- 檢查器
- 國際化
- 模組:CommonJS 模組
- 模組:ECMAScript 模組
- 模組:
node:moduleAPI - 模組:包
- 模組:TypeScript
- 網路
- 作業系統
- 路徑
- 效能鉤子
- 許可權
- 程序
- Punycode
- 查詢字串
- 逐行讀取
- REPL
- 報告
- 單一可執行檔案應用
- SQLite
- 流
- 字串解碼器
- 測試執行器
- 定時器
- TLS/SSL
- 跟蹤事件
- TTY
- UDP/資料報
- URL
- 實用工具
- V8
- 虛擬機器
- WASI
- Web Crypto API
- Web Streams API
- 工作執行緒
- Zlib
- 其他版本
- 選項
TTY#
原始碼: lib/tty.js
node:tty 模組提供了 tty.ReadStream 和 tty.WriteStream 類。在大多數情況下,沒有必要或可能直接使用此模組。但是,可以使用以下方式訪問它:
const tty = require('node:tty');
當 Node.js 檢測到它在連線了文字終端("TTY")的情況下執行時,process.stdin 預設會被初始化為 tty.ReadStream 的例項,而 process.stdout 和 process.stderr 預設都會是 tty.WriteStream 的例項。判斷 Node.js 是否在 TTY 上下文中執行的首選方法是檢查 process.stdout.isTTY 屬性的值是否為 true。
$ node -p -e "Boolean(process.stdout.isTTY)"
true
$ node -p -e "Boolean(process.stdout.isTTY)" | cat
false
在大多數情況下,應用程式幾乎沒有理由需要手動建立 tty.ReadStream 和 tty.WriteStream 類的例項。
類: tty.ReadStream#
- 繼承自: <net.Socket>
表示 TTY 的可讀端。在正常情況下,process.stdin 將是 Node.js 程序中唯一的 tty.ReadStream 例項,並且沒有理由建立額外的例項。
readStream.isRaw#
一個 boolean 值,如果 TTY 當前配置為作為原始裝置執行,則為 true。
即使終端在原始模式下執行,此標誌在程序啟動時也始終為 false。其值會隨著後續對 setRawMode 的呼叫而改變。
readStream.isTTY#
一個 boolean 值,對於 tty.ReadStream 例項始終為 true。
類: tty.WriteStream#
- 繼承自: <net.Socket>
表示 TTY 的可寫端。在正常情況下,process.stdout 和 process.stderr 將是為 Node.js 程序建立的唯一的 tty.WriteStream 例項,並且沒有理由建立額外的例項。
new tty.ReadStream(fd[, options])#
fd<number> 與 TTY 關聯的檔案描述符。options<Object> 傳遞給父級net.Socket的選項,請參見net.Socket建構函式 的options。- 返回: <tty.ReadStream>
為與 TTY 關聯的 fd 建立一個 ReadStream。
new tty.WriteStream(fd)#
fd<number> 與 TTY 關聯的檔案描述符。- 返回: <tty.WriteStream>
為與 TTY 關聯的 fd 建立一個 WriteStream。
事件: 'resize'#
每當 writeStream.columns 或 writeStream.rows 屬性發生變化時,就會觸發 'resize' 事件。呼叫時不會向監聽器回撥函式傳遞任何引數。
process.stdout.on('resize', () => {
console.log('screen size has changed!');
console.log(`${process.stdout.columns}x${process.stdout.rows}`);
});
writeStream.clearLine(dir[, callback])#
dir<number>-1: 從游標向左1: 從游標向右0: 整行
callback<Function> 操作完成後呼叫。- 返回: <boolean> 如果流希望呼叫程式碼在繼續寫入更多資料之前等待
'drain'事件觸發,則為false;否則為true。
writeStream.clearLine() 會按照 dir 指定的方向清除此 WriteStream 的當前行。
writeStream.clearScreenDown([callback])#
callback<Function> 操作完成後呼叫。- 返回: <boolean> 如果流希望呼叫程式碼在繼續寫入更多資料之前等待
'drain'事件觸發,則為false;否則為true。
writeStream.clearScreenDown() 從當前游標位置向下清除此 WriteStream。
writeStream.columns#
一個 number,指定 TTY 當前的列數。此屬性在 'resize' 事件觸發時更新。
writeStream.cursorTo(x[, y][, callback])#
x<number>y<number>callback<Function> 操作完成後呼叫。- 返回: <boolean> 如果流希望呼叫程式碼在繼續寫入更多資料之前等待
'drain'事件觸發,則為false;否則為true。
writeStream.cursorTo() 將此 WriteStream 的游標移動到指定位置。
writeStream.getColorDepth([env])#
返回
1表示 2 色,4表示 16 色,8表示 256 色,24表示支援 16,777,216 色。
用此方法確定終端支援的顏色。由於終端中顏色的特性,可能會出現假陽性(false positive)或假陰性(false negative)。這取決於程序資訊和可能謊報所用終端的環境變數。可以傳入一個 env 物件來模擬特定終端的使用。這對於檢查特定環境設定的行為很有用。
要強制執行特定的顏色支援,請使用以下環境設定之一。
- 2 色:
FORCE_COLOR = 0(停用顏色) - 16 色:
FORCE_COLOR = 1 - 256 色:
FORCE_COLOR = 2 - 16,777,216 色:
FORCE_COLOR = 3
也可以透過使用 NO_COLOR 和 NODE_DISABLE_COLORS 環境變數來停用顏色支援。
writeStream.getWindowSize()#
- 返回: <number[]>
writeStream.getWindowSize() 返回與此 WriteStream 對應的 TTY 的大小。陣列的型別為 [numColumns, numRows],其中 numColumns 和 numRows 分別代表相應 TTY 中的列數和行數。
writeStream.hasColors([count][, env])#
count<integer> 請求的顏色數量(最少 2)。預設值: 16。env<Object> 一個包含要檢查的環境變數的物件。這使得可以模擬特定終端的使用。預設值:process.env。- 返回:<boolean>
如果 writeStream 支援的顏色數量至少與 count 中提供的一樣多,則返回 true。最低支援為 2 色(黑白)。
此方法具有與 writeStream.getColorDepth() 中描述的相同的假陽性和假陰性問題。
process.stdout.hasColors();
// Returns true or false depending on if `stdout` supports at least 16 colors.
process.stdout.hasColors(256);
// Returns true or false depending on if `stdout` supports at least 256 colors.
process.stdout.hasColors({ TMUX: '1' });
// Returns true.
process.stdout.hasColors(2 ** 24, { TMUX: '1' });
// Returns false (the environment setting pretends to support 2 ** 8 colors).
writeStream.isTTY#
一個 boolean 值,始終為 true。
writeStream.moveCursor(dx, dy[, callback])#
dx<number>dy<number>callback<Function> 操作完成後呼叫。- 返回: <boolean> 如果流希望呼叫程式碼在繼續寫入更多資料之前等待
'drain'事件觸發,則為false;否則為true。
writeStream.moveCursor() 將此 WriteStream 的游標相對於其當前位置移動。
writeStream.rows#
一個 number,指定 TTY 當前的行數。此屬性在 'resize' 事件觸發時更新。
tty.isatty(fd)#
如果給定的 fd 與 TTY 相關聯,則 tty.isatty() 方法返回 true,否則返回 false,包括當 fd 不是非負整數時。