我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Node.js中readline模块实现终端输入

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Node.js中readline模块实现终端输入

1 概述

readline是Node.js里实现标准输入输出的封装好的模块,通过这个模块我们可以以逐行的方式读取数据流。使用require("readline")可以引用模块。

使用readline步骤:
1、引入:require('readline')
2、创建readline对象(接口)
3、调用接口的相关方法
4、监听和处理readline事件

示例代码:

// 引入readline模块
const readline = require("readline");

// 创建readline接口实例
let r1 = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})

//调用接口方法
r1.question("你叫什么名字\t", function (answer) {
    console.log("我的名字是:", answer);
    // 不加close,则不会结束
    r1.close();
})

//close事件监听
r1.on("close", function () {
    // 结束程序
    process.exit(0);
})

在这里插入图片描述

2 readline的使用

第一步:createInterface创建了一个接口实例
第二步:调用相关方法,如question方法输入
第三步:监听readline的close事件

注意:
1、在createInterface里,需要传入标准输入输出作为数据的输入输出流
2、在question方法的回调函数里,可以获取到用户的输入并进行处理,同时进行了close操作来结束程序,否则程序不会结束
3、在close事件的监听里,执行了process.exit(0)来使程序退出的操作,因为readline模块只要一开始获取用户输入就不会结束,必须使用这种直接的方式来结束程序

3 示例1:输入输出

示例代码:

// 引入readline模块
let readline = require("readline");

// 创建接口实例
let r1 = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})

// 调用接口方法
r1.on("line", function (line) {
    switch (line.trim()) {
        case "copy":
            console.log("复制");
            break;
        case "hello":
            r1.write("Hello ");
            console.log("World!");
            break;
        case "close":
            r1.close();
            break;
        default:
            console.log("没有找到命令!");
            break;
    }
})

// close事件监听
r1.on("close", function () {
    console.log("再见");
    process.exit(0);
})

在这里插入图片描述

注意:'line’事件,这个事件就是在用户输完一行,按下回车后就会触发的事件,它会将用户输入的数据通过回调函数传回来,可在此方法里处理用户输入的数据

4 示例2:模拟命令行的输入输出

示例代码:

// 引入readline模块
let readline = require("readline");

// 创建接口实例
let r1 = readline.createInterface({
    input: process.stdin,
    output: process.stdout
})

// 方法方法setPromat(promat) ,就是给每一行设置一个提示符,
// 就好比window命令行的> ,这里设置的是Test>
r1.setPrompt("Test> ");
// prompt()是最重要的方法,因为它体现了readline的核心作用,
// 以行为单位读取数据,prompt方法就是在等待用户输入数据
r1.prompt();

// 调用接口方法
// 监听了'line' 事件,因为prompt方法调用一次就只会读取一次数据
// 所以,在这个方法又调用了一次prompt方法,这样就可以继续读取用户输入
// 从而达到一种命令行的效果
r1.on("line", function (line) {
    switch (line.trim()) {
        case "copy":
            console.log("复制");
            break;
        case "hello":
            console.log("World!");
            break;
        case "close":
            r1.close();
            break;
        default:
            console.log("没有找到命令!");
            break;
    }
    r1.prompt();
});

// close事件监听
r1.on("close", function () {
    console.log("再见");
    process.exit(0);
})

在这里插入图片描述

说明:
1、方法setPromat(promat) ,就是给每一行设置一个提示符,就好比window命令行的> ,这里设置的是Test>
2、prompt()是最重要的方法,因为它体现了readline的核心作用,以行为单位读取数据,prompt方法就是在等待用户输入数据
3、监听了’line’ 事件,因为prompt方法调用一次就只会读取一次数据,所以,在这个方法又调用了一次prompt方法,这样就可以继续读取用户输入,从而达到一种命令行的效果

到此这篇关于Node.js中readline模块实现终端输入的文章就介绍到这了,更多相关Node.js 终端输入内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Node.js中readline模块实现终端输入

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Node.js中如何使用readline模块实现终端输入

本文小编为大家详细介绍“Node.js中如何使用readline模块实现终端输入”,内容详细,步骤清晰,细节处理妥当,希望这篇“Node.js中如何使用readline模块实现终端输入”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
2023-06-29

Node.js用readline模块实现输入输出

什么是ReadlineReadline是Node.js里实现标准输入输出的封装好的模块,通过这个模块我们可以以逐行的方式读取数据流。使用require("readline")可以引用模块。 如何使用Readline以使用为角度的话,学习Re
2022-06-04

CentOS7下实现终端输入中文设置详解

(1)首先打开系统的设置,点击区域和语言(2)点击+号选择汉语(Intelligent Pinyin)(3)然后突出点击右上角切换到汉语拼音,这样就可以在终端输入汉字了。附:如果系统中没有汉语(pi
2022-06-04

Node.js中readline怎么实现逐行读取、写入文件内容

本篇内容主要讲解“Node.js中readline怎么实现逐行读取、写入文件内容”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js中readline怎么实现逐行读取、写入文件内容”吧!
2023-06-17

node和ES6中模块导出与导入怎么实现

这篇文章主要介绍“node和ES6中模块导出与导入怎么实现”,在日常操作中,相信很多人在node和ES6中模块导出与导入怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”node和ES6中模块导出与导入怎
2023-06-17

怎么在html5中实现移动端价格输入键盘

今天就跟大家聊聊有关怎么在html5中实现移动端价格输入键盘,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。HTML:
2023-06-09

在python中实现导入一个需要传参的模块

最近跑实验,遇到了一个问题: 由于实验数据集比较多,每次跑完一个数据集就需要手动更改文件路径,再将文件传到服务器,再运行实验,这样的话效率很低,必须要专门看着这个实验,啥时候跑完就手动修改运行下一个实验。我个人无法忍受这样低效率,就想能不能
2022-06-02

Python的import 机制中如何实现远程导入模块

本篇文章为大家展示了Python的import 机制中如何实现远程导入模块,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。所谓的模块导入,是指在一个模块中使用另一个模块的代码的操作,它有利于代码的复用
2023-06-02

python基于隐马尔可夫模型实现中文拼音输入

在网上看到一篇关于隐马尔科夫模型的介绍,觉得简直不能再神奇,又在网上找到大神的一篇关于如何用隐马尔可夫模型实现中文拼音输入的博客,无奈大神没给可以运行的代码,只能纯手动网上找到了结巴分词的词库,根据此训练得出隐马尔科夫模型,用维特比算法实现
2022-06-04

编程热搜

目录