Node.js的用户交互(使用readline模块)

内容来源:https://www.jianshu.com/p/b761111eef72

在程序运行时可以使用键盘对程序进行控制,就像使用shell界面一样

Readline:node.js的里实现的标准输入输出的模块,这个模块提供的接口可以从一个可读的留中读取数据,每次读取一行

简单例子:

const readline = require('readline');//创建readline接口实例
const rl = readline.createInterface({input: process.stdin, //设置标准的输入流output: process.stdout //设置标准输出流
});// question方法
rl.question('请输入: ', function(answer){console.log('你输入的内容是 {%s}', answer.toUpperCase());// 不加close,则不会结束
    rl.close();
});

输出:

请输入: 1233
你输入的内容是 {1233}

另一个高级例子:

var readline = require('readline');
var  rl = readline.createInterface(process.stdin, process.stdout);/*
*  方法setPromat(promat),就是给每一行设置一个提示符,就好比window命令行的> ,我们这里设置的是Test>
*  promat()可以算是最重要的方法了,因为它才体现了Readline的核心作用,以行为单位读取数据,premat方法就是在等待用户输入数据
*  这里又监听了’line’ 事件,因为promat方法调用一次就只会读取一次数据,所以,在这个方法又调用了一次promat方法,这样就可以继续读取用户输入,从而达到一种命令行的效果
*/rl.setPrompt('Test> ');
rl.prompt();rl.on('line', function(line) {switch(line.trim()) {case 'copy':console.log("复制");break;case 'hello':console.log('world!');break;case 'close':rl.close();break;default:console.log('没有找到命令!');break;}rl.prompt();
});rl.on('close', function() {console.log('bye bye!');process.exit(0);
});

Test> copy
复制
Test> hello
world!
Test> world
没有找到命令!
Test> close
bye bye!

posted on 2019-01-25 15:11 玉貔貅 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/yupixiu/p/10319755.html

Node.js的用户交互(使用readline模块)相关推荐

  1. Ajax+Node.js前后端交互最佳入门实践(01)

    1.Node.js简介 1.0.前后台数据交互流程 在web开发中,我们经常听说前端和后台,他们分别是做什么具体工作的呢?他们怎样交互的呢?我们得把这些基础的问题都搞明白了,才有一个大致的学习方向,首 ...

  2. vue+node.js前后端交互中的token令牌验证

    这篇文章分享一下本人学习vue+node.js前后端交互中的登录token令牌的心得 最近准备写一个个人博客网站,前端采用的是vue+element,后端用node.js 在做用户登录的时候就想到 如 ...

  3. 深入浅出Node.js(八):Connect模块解析(之二)静态文件中间件

    为什么80%的码农都做不了架构师?>>>    上一篇专栏简单介绍了Connect模块的基本架构,它的执行模型十分简单,中间件机制也使得它十分易于扩展,具备良好的可伸缩性.在Conn ...

  4. 关于node.js和C交互的方法

    下面来至https://blog.csdn.net/cut001/article/details/69397022的方法 FUNCTION ulong DesEnCodeHex(string str, ...

  5. 【前端学习项目】web前端#001网页点名器(html+css+js实现用户交互)

    目录 首先先把学生一个一个的放到数组中 其次遍历这个数组 然后按钮事件触发 最后附上完整代码: 最后的实现 这个故事是这样开始的,新学期伊始,我们java老师为了检测学生的java基础水平,留下了这么 ...

  6. Ajax+Node.js前后端交互最佳入门实践(05)

    5.ajax简介 5.1.什么是ajax Asynchronous JavaScript and XML ,异步的javascript和XML 5.2.使用ajax有什么用 数据交互,可以从服务器获取 ...

  7. Ajax+Node.js前后端交互最佳入门实践(04)

    4.JSON 4.1 什么是JSON? JavaScript 对象表示法(JavaScript Object Notation)简称JSON,是一种轻量级的数据交换格式.虽然它基于JavaScript ...

  8. 【uniapp+node.js】用户式加班计算器项目

    公司实行加班制度:固定每周加班6个小时 每天上班时间为8个小时 中午休息时间为12:00- 1:30 算起来好麻烦 直接写个软件吧 感觉还有其他人会用 再搞个账号注册登录吧! 加班时长规则为:总上班时 ...

  9. node.js浅入深出---fs模块的stat判断是否为文件夹

    判断文件夹下的bbb是否为文件夹,若是的返回true var http = require("http"); var fs = require("fs"); v ...

最新文章

  1. leetcode-53 最大子序和
  2. 清华大学全面审查文科博士论文!
  3. ORM版学员管理系统2
  4. Linux Epoll 一网打尽
  5. window 自动安装MySQL数据库_windows安装MySQL数据库
  6. spreadsheet js中创建下拉列表_JS 中创建自定义排序方法
  7. 组合选择符 深入了解
  8. 十大网络安全策略 打造坚固的内网
  9. git rebase vs git merge
  10. 【算法原理+洛谷P6114+HDU6761】Lyndon分解
  11. jQuery文档加载完毕的几种写法
  12. 【Linux operation 18】 - SUSE 12 SP5在线安装Docker
  13. 一个div里面包含两个div让两个div垂直居中
  14. 网关gate启动报错Parameter 0 of method modifyRequestBodyGatewayFilterFactory in org.springframework.cloud.g
  15. Qt 小例子学习14 - 动态滚动QScrollArea
  16. printf二进制输出
  17. 国家开放大学《国际经济法》第二章 国际货物买卖法 边学边练
  18. 个人支付微信支付宝接口
  19. leet 75. 颜色分类
  20. TZT1306标准模拟应变源

热门文章

  1. java环境容量怎么弄_网络营销_尔雅_章节测验答案
  2. 机器学习回归模型精度_机器学习模型实施精度召回和概率截止。
  3. 从程序员到asp.net架构师转变
  4. c语言字符集改为多字节,多字节与Unicode
  5. PS设计稿如何在手机中快速预览?
  6. 特效转序列帧动画工具
  7. STC8A单片机功能和应用电路
  8. Cosmos的发展之路
  9. Shopify开店建站营销推广卖家平台后台中文指南 – Abandoned checkout recovery/挽救弃单
  10. Silverlight 版 C1OutlookBar 初体验