一、流
process.stdin / process.stdout
tty 模块包含 tty.ReadStream 和 tty.WriteStream 类。多数情况下,你不必直接使用这个模块。当 node 检测到自己正运行于 TTY 上下文时,process.stdin 将会是一个 tty.ReadStream 实例,并且 process.stdout 将会是 tty.WriteStream 实例。检测 node 是否运行在 TTY 上下文的好方法是检测 process.stdout.isTTY。大致可以把 tty 理解为用户打开的终端. 当标准输出为终端时,isTTY 就是为 true。
二、readline 模块
//基础例子一
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
//一旦 readline.Interface 实例被创建,最常见的用法是监听 'line' 事件
rl.on('line', (line) => {
console.log("输入为"+line);
});
//例二
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
prompt: '请输入> ' //输入提示,在使用rl.prompt();的地方出现
});
rl.prompt();
//rl.prompt()方法会在 output 流中新的一行写入 readline.Interface 实例配置后的 prompt,用于为用户提供一个可供输入的新的位置。
当被调用时,如果 input 流已被暂停,则 rl.prompt() 会恢复 input 流。
如果 readline.Interface 被创建时 output 被设为 null 或 undefined,则提示不会被写入。
rl.on('line', (line) => {
console.log(`你输入的是:'${line.trim()}'`);
}
rl.prompt();
}).on('close', () => { //readline.Interface 实例结束时。
console.log('再见!');
process.exit(0);
});
//例三
const readline = require('readline');
const fs = require('fs');
con