Node.js API详解之 tty功能与用法实例分析


Posted in Javascript onApril 27, 2020

本文实例讲述了Node.js API详解之 tty功能与用法。分享给大家供大家参考,具体如下:

tty 可以理解为终端的意思。tty 模块提供终端相关的接口,用来获取终端的行数列数等。

通过 const tty = require(‘tty'); 的方式引用 tty 模块

process.stdout.isTTY

说明:

此属性位于 process 模块,用来判断 Node.js 是否运行在一个 TTY 环境中

demo:

console.log(process.stdout.isTTY)
//true

tty.ReadStream 类

说明:

tty.ReadStream 类是 net.Socket 的一个子类,表示 TTY 的可读部分。

正常情况下,process.stdin 是 Node.js 进程中唯一的 tty.ReadStream 实例,无需创建更多的实例

也就是说不需要我们手动 new 一个实例,直接使用 process.stdin 即可。

readStream.isRaw

说明:

是否为原始模式,默认值为 false 。如果TTY被配置成原始模式,该属性值为 true

demo:

console.log(process.stdin.isRaw)
//false

readStream.setRawMode(mode)

说明:

该方法用来将 TTY 配置为原始模式。原始模式下,输入按字符逐个生效,终端对字符的所有特殊处理会被禁用,包括应答输入的字符。 该模式中 CTRL+C 不再产生 SIGINT。

mode:传递 true 或者 false 来关闭和开启原始模式,对应 readStream.isRaw 的值也会发生改变。

demo:

process.stdin.setRawMode(true); // 开启原始模式
console.log(process.stdin.isRaw);
//true
 
process.stdin.setRawMode(false); // 关闭原始模式
console.log(process.stdin.isRaw);
//false

tty.WriteStream 类

说明:

tty.WriteStream 类是 net.Socket 的一个子类,表示 TTY 的可写部分。

正常情况下,process.stdout 和 process.stderr 是 Node.js 进程中唯一的 tty.WriteStream 实例,无需创建更多的实例。

writeStream.columns

说明:

此属性用来表示当前TTY具有的列数,当resize时间被触发时,该属性会被更新。

demo:

console.log(process.stdout.columns);
//88

writeStream.rows

说明:

次属性用来表示当前TTY具有的行数,当resize时间被触发时,该属性会被更新。

demo:

console.log(process.stdout.rows);
//40

Event: resize

说明:

当TTY窗口发生变化时,会触发resize事件。

demo:

process.stdout.on('resize', () => {
 console.log('窗口大小发生变化!');
 console.log(`${process.stdout.columns}x${process.stdout.rows}`);
});
// > 窗口大小发生变化!
// 86x40
// > 窗口大小发生变化!
// 85x40
// > 窗口大小发生变化!
// 84x40

tty.isatty(fd)

说明:

如果给定的 fd 有关联 TTY,则返回 true,否则返回 false。

fd 数值类型的文件描述符。

demo:

console.log(tty.isatty(2));
//true
console.log(tty.isatty(200));
//false

希望本文所述对大家node.js程序设计有所帮助。

Javascript 相关文章推荐
Mootools 1.2教程 函数
Sep 15 Javascript
利用JQuery+EasyDrag 实现弹出可拖动的Div,同时向Div传值,然后返回Div选中的值
Oct 24 Javascript
JS对象转换为Jquery对象示例
Jan 26 Javascript
js 数值转换为3位逗号分隔的示例代码
Feb 19 Javascript
js实现点击图片自动提交action的简单方法
Oct 16 Javascript
Mongoose经常返回e11000 error的原因分析
Mar 29 Javascript
很棒的vue弹窗组件
May 24 Javascript
解决vue-cli中stylus无法使用的问题方法
Jun 19 Javascript
Vue微信项目按需授权登录策略实践思路详解
May 07 Javascript
玩转Koa之核心原理分析
Dec 29 Javascript
javascript获取元素的计算样式
May 24 Javascript
easyUI 实现的后台分页与前台显示功能示例
Jun 01 Javascript
React.js组件实现拖拽排序组件功能过程解析
Apr 27 #Javascript
element 中 el-menu 组件的无限极循环思路代码详解
Apr 26 #Javascript
微信小程序个人中心的列表控件实现代码
Apr 26 #Javascript
vue项目中自定义video视频控制条的实现代码
Apr 26 #Javascript
vue项目启动出现cannot GET /服务错误的解决方法
Apr 26 #Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
Apr 26 #Javascript
jquery检测上传文件大小示例
Apr 26 #jQuery
You might like
php 空格,换行,跳格使用说明
2009/12/18 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
Yii2.0 RESTful API 基础配置教程详解
2018/12/26 PHP
PHP crc32()函数讲解
2019/02/14 PHP
基于php伪静态的实现方法解析
2020/07/31 PHP
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
JavaScript排序算法动画演示效果的实现方法
2016/10/18 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
微信小程序实现滚动Tab选项卡
2020/11/16 Javascript
[01:10:24]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第一场 2月28日
2021/03/11 DOTA
python 列表,数组,矩阵两两转换tolist()的实例
2018/04/04 Python
CentOS7下python3.7.0安装教程
2018/07/30 Python
Python3 翻转二叉树的实现
2019/09/30 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
泰国网上购物:Shopee泰国
2018/09/14 全球购物
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
什么是Oracle的后台进程background processes?都有哪些后台进程?
2012/04/26 面试题
《吃水不忘挖井人》教学反思
2014/04/15 职场文书
大学英语演讲稿范文
2014/04/24 职场文书
篮球兴趣小组活动总结
2014/07/07 职场文书
2014年财务人员工作总结
2014/11/11 职场文书
挂靠协议书
2015/01/27 职场文书
施工安全员岗位职责
2015/04/11 职场文书
python字符串的多行输出的实例详解
2021/06/08 Python