# TTY
~~~
穩(wěn)定度: 2 - 不穩(wěn)定
~~~
`tty` 模塊提供了 `tty.ReadStream` 和 `tty.WriteStream` 類(lèi)。在大部分情況下,您都不會(huì)需要直接使用此模塊。
當(dāng) node 檢測(cè)到它正運(yùn)行于 TTY 上下文中時(shí),`process.stdin` 將會(huì)是一個(gè) `tty.ReadStream` 實(shí)例,且 `process.stdout` 也將會(huì)是一個(gè) `tty.WriteStream` 實(shí)例。檢查 node 是否運(yùn)行于 TTY 上下文的首選方式是檢查 `process.stdout.isTTY`:
~~~
$ node -p -e "Boolean(process.stdout.isTTY)"
true
$ node -p -e "Boolean(process.stdout.isTTY)" | cat
false
~~~
### tty.isatty(fd)
若 `fd` 關(guān)聯(lián)于中端則返回 `true`,反之返回 `false`。
### tty.setRawMode(mode)
已廢棄,請(qǐng)使用 `tty.ReadStream#setRawMode()`(如 `process.stdin.setRawMode()`)。
### 類(lèi): ReadStream
一個(gè) `net.Socket` 子類(lèi),代表 TTY 的可讀部分。通常情況下在所有 node 程序中 `process.stdin` 會(huì)是僅有的 `tty.ReadStream` 實(shí)例(進(jìn)當(dāng) `isatty(0)` 為 true 時(shí))。
### rs.isRaw
一個(gè) `Boolean`,初始為 `false`,代表 `tty.ReadStream` 實(shí)例的當(dāng)前 "raw" 狀態(tài)。
### rs.setRawMode(mode)
`mode` 可以是 `true` 或 `false`。它設(shè)定 `tty.ReadStream` 的屬性表現(xiàn)為原始設(shè)備或缺省。`isRaw` 會(huì)被設(shè)置為結(jié)果模式。
### 類(lèi): WriteStream
一個(gè) `net.Socket` 子類(lèi),代表 TTY 的可寫(xiě)部分。通常情況下 `process.stdout` 會(huì)是僅有的 `tty.WriteStream` 實(shí)例(進(jìn)當(dāng) `isatty(1)` 為 true 時(shí))。
### ws.columns
一個(gè) `Number,表示 TTY 當(dāng)前的列數(shù)。該屬性會(huì)在 "resize" 事件中被更新。
### ws.rows
一個(gè) `Number,表示 TTY 當(dāng)前的行數(shù)。該屬性會(huì)在 "resize" 事件中被更新。
### 事件: 'resize'
`function () {}`
由 `refreshSize()` 在 `columns` 或 `rows` 屬性被改變時(shí)觸發(fā)。
~~~
process.stdout.on('resize', function() {
console.log('屏幕大小已改變!');
console.log(process.stdout.columns + 'x' + process.stdout.rows);
});
~~~
- 關(guān)于本文檔
- 概述
- 斷言 (assert)
- Buffer
- Addons插件
- 子進(jìn)程
- 集群
- 控制臺(tái)
- 加密(Crypto)
- 調(diào)試器
- DNS
- 域
- 事件 (Events)
- File System
- 全局對(duì)象
- HTTP
- HTTPS
- Modules
- net
- 操作系統(tǒng)
- 路徑 (Path)
- process
- punycode
- Query String
- Readline
- REPL
- Smalloc
- 流
- 字符串解碼器
- 定時(shí)器
- TLS (SSL)
- TTY
- UDP / 數(shù)據(jù)報(bào)套接字
- URL
- utils
- 執(zhí)行 JavaScript
- Zlib
- 進(jìn)度
- 感謝
