个性化阅读
专注于IT技术分析

Node.js TTY示例

本文概述

Node.js TTY模块包含tty.ReadStream和tty.WriteStream类。在大多数情况下, 无需直接使用此模块。

你必须使用require(‘tty’)来访问此模块。

句法:

var tty = require('tty');

当Node.js发现它正在TTY上下文中运行时, 则:

  • process.stdin将是tty.ReadStream实例
  • process.stdout将是tty.WriteStream实例

要检查Node.js是否在TTY上下文中运行, 请使用以下命令:

node -p -e "Boolean(process.stdout.isTTY)"
Node.js tty示例1

类:ReadStream

它包含一个net.Socket子类, 该子类表示tty的可读部分。在正常情况下, tty.ReadStream在任何Node.js程序中只有一个名为process.stdin的实例(仅当isatty(0)为true时)。

rs.isRaw:这是一个布尔值, 已初始化为false。它指定tty.ReadStream实例的当前”原始”状态。

rs.setRawMode(mode):应该为true或false。它用于设置tty.ReadStream的属性以充当原始设备或默认设备。 isRaw将设置为结果模式。

类:WriteStream

它包含一个net.Socket子类, 该子类表示tty的可写部分。在正常情况下, tty.WriteStream在任何Node.js程序中只有一个名为process.stdout的实例(仅当isatty(1)为true时)。

调整大小事件:更改列或行属性中的任何一个时, 将使用此事件。

句法:

process.stdout.on('resize', () => {
  console.log('screen size has changed!');
  console.log(`${process.stdout.columns}x${process.stdout.rows}`);
});

ws.columns:用于给出TTY当前具有的列数。此属性在”调整大小”事件上得到更新。

ws.rows:用于给出TTY当前具有的行数。此属性在”调整大小”事件上得到更新。

Node.js TTY示例

文件: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()
  }
});

输出

Node.js tty示例2
赞(0)
未经允许不得转载:srcmini » Node.js TTY示例

评论 抢沙发

评论前必须登录!