Node.js v8.x 中文文档
目录
tty - 终端#
tty
模块提供了 tty.ReadStream
类和 tty.WriteStream
类。
使用以下方法引入:
const tty = require('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 类#
tty.ReadStream
类是 net.Socket
的一个子类,表示 TTY 的可读部分。
正常情况下,process.stdin
是 Node.js 进程中唯一的 tty.ReadStream
实例,无需创建更多的实例。
readStream.isRaw#
返回 boolean
值。
如果 TTY 被配置成原始模式,则返回 true
。
默认为 false
。
readStream.isTTY#
A boolean
that is always true
for tty.ReadStream
instances.
readStream.setRawMode(mode)#
把 tty.ReadStream
配置成原始模式。
在原始模式中,输入按字符逐个生效,但不包括修饰符。
终端对字符的所有特殊处理会被禁用,包括应答输入的字符。
该模式中 CTRL
+C
不再产生 SIGINT
。
mode
<boolean> 如果为true
,则把tty.ReadStream
配置成原始模式。 如果为false
,则把tty.ReadStream
配置成默认模式。readStream.isRaw
属性会被设为对应的值。
tty.WriteStream 类#
tty.WriteStream
类是 net.Socket
的一个子类,表示 TTY 的可写部分。
正常情况下,process.stdout
和 process.stderr
是 Node.js 进程中唯一的 tty.WriteStream
实例,无需创建更多的实例。
'resize' 事件#
当 writeStream.columns
属性或 writeStream.rows
属性发生变化时触发 'resize'
事件。
监听器回调函数没有参数。
process.stdout.on('resize', () => {
console.log('窗口大小发生变化!');
console.log(`${process.stdout.columns}x${process.stdout.rows}`);
});
writeStream.columns#
返回 number
值,表示 TTY 当前具有的列数。
每当 'resize'
事件被触发时,该属性会被更新。
writeStream.isTTY#
A boolean
that is always true
.
writeStream.rows#
返回 number
值,表示 TTY 当前具有的行数。
每当 'resize'
事件被触发时,该属性会被更新。
tty.isatty(fd)#
fd
<number> 数值类型的文件描述符。
如果给定的 fd
有关联 TTY,则返回 true
,否则返回 false
。
- 断言测试
- 异步钩子(Async Hooks)
- 缓存(Buffer)
- C++ 插件
- C/C++ 插件 - N-API
- 子进程
- 集群(Cluster)
- 命令行参数
- 控制台(Console)
- 加密(Crypto)
- 调试器
- 废弃的 API
- DNS
- 域(Domain)
- ECMAScript 模块
- 错误(Errors)
- 事件(Events)
- 文件系统
- 全局对象(Globals)
- HTTP
- HTTP/2
- HTTPS
- 检查工具(Inspector)
- 国际化
- 模块(Modules)
- 网络(Net)
- 操作系统(OS)
- 路径(Path)
- 性能钩子(Performance Hooks)
- 进程
- Punycode
- 查询字符串
- 逐行读取
- 交互式解释器(REPL)
- 流(Stream)
- 字符串解码
- 定时器(Timers)
- 安全传输层(TLS/SSL)
- 事件跟踪(Tracing)
- TTY
- UDP / 数据报
- URL
- 工具集
- V8
- 虚拟机(VM)
- 压缩(ZLIB)