Node.js TTY模块包含tty.ReadStream和tty.WriteStream类。在大多数情况下,无需直接使用此模块。
您必须使用require('tty')来访问此模块。
语法:
var tty = require('tty');
当Node.js发现它正在TTY上下文中运行时,则:
要检查如果Node.js在TTY上下文中运行,请使用以下命令:
node -p -e "Boolean(process.stdout.isTTY)"
它包含一个net.Socket子类,该子类表示tty的可读部分。在正常情况下,tty.ReadStream在任何Node.js程序中只有一个名为process.stdin的实例(仅当isatty(0)为true时)。
rs.isRaw - 它是一个初始化为false的布尔值。它指定了tty.ReadStream实例的当前“raw”状态。
rs.setRawMode(mode) - 它应该是true还是false。它用于设置tty.ReadStream的属性以充当原始设备或默认设备。 isRaw将设置为结果模式。
它包含一个net.Socket子类,该子类表示tty的可写部分。在正常情况下,tty.WriteStream在任何Node.js程序中只有一个名为process.stdout的实例(仅当isatty(1)为true时)。
Resize event - 列或行属性中的任何一个已更改时,都会使用此事件。
语法:
process.stdout.on('resize', () => { console.log('screen size has changed!'); console.log(`${process.stdout.columns}x${process.stdout.rows}`); });
ws.columns - 它用于给出TTY当前具有的列数。此属性在“resize”事件上得到更新。
ws.rows - 它用于给出TTY当前具有的行数。此属性在“resize”事件上得到更新。
文件:tty.js.
var tty = require('tty'); process.stdin.setRawMode(true); process.stdin.resume(); console.log('I am leaving now'); process.stdin.on('keypress', function(char, key) { if (key && key.ctrl && key.name == 'c') { process.exit() } });
输出:
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)