Node.js API详解之 tty功能与用法实例分析
本文实例讲述了Node.jsAPI详解之tty功能与用法。分享给大家供大家参考,具体如下:
tty可以理解为终端的意思。tty模块提供终端相关的接口,用来获取终端的行数列数等。
通过consttty=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程序设计有所帮助。