Node.jsTTY模块

Node.jsTTY模块 首页 / Node.js入门教程 / Node.jsTTY模块

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

您必须使用require('tty')来访问此模块。

语法:

var tty = require('tty');

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

链接:https://www.learnfk.comhttps://www.learnfk.com/nodejs/nodejs-tty.html

来源:LearnFk无涯教程网

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

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

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

Readstream类

它包含一个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将设置为结果模式。

WriteStream类

它包含一个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示例

文件: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 example 2

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

教程推荐

中间件核心技术与实战 -〔丁威〕

反爬虫兵法演绎20讲 -〔DS Hunter〕

大厂晋升指南 -〔李运华〕

Node.js开发实战 -〔杨浩〕

Flutter核心技术与实战 -〔陈航〕

深入浅出计算机组成原理 -〔徐文浩〕

大规模数据处理实战 -〔蔡元楠〕

零基础学Python -〔尹会生〕

深入浅出gRPC -〔李林锋〕

好记忆不如烂笔头。留下您的足迹吧 :)