读取node.js命令行输入内容的小工具 进入全屏
line
/**
 * 读取node.js命令行输入内容的小工具
 *
 * @api
 *  exports.startStepByStep;
 *  exports.readLine;
 *
 * @example
 *  var prompt = require('prompt.js');
 *  prompt.startStepByStep({
 *      step1 : function(){
 *          prompt.readLine('请输入账号:',function(username){
 *          });
 *      },
 *      step2 : function(){
 *          prompt.readLine('请输入密码:',function(password){
 *          },true);
 *      }
 *  },0);
 *
 * @author zhaoxianlie
 */

主要对外暴露两个方法:

1、startStepByStep

/**
 * 启动prompt,且按照stepMap逐个执行 (之后再考虑升级成Promise模式)
 * @param _stepMap  等待执行的step队列,JSON格式,格式如:
 * @param firstStep 从stepMap中的第几个开始执行,默认是第一个
 *
 * @example
 *  var prompt = require('prompt.js');
 *  prompt.startStepByStep({
 *      step1 : function(){},
 *      step2 : function(){}
 *  },0);
 */
var startStepByStep = function (_stepMap, firstStep) {};

2、readLine

/**
 * 读取命令行的输入
 * @param tips      提示文字
 * @param callback  输入结束后的回调,格式为:function(data){}
 * @param secure    是否为安全码输入模式,默认:false
 *
 * @example
 *  var prompt = require('prompt.js');
 *  prompt.readLine('请输入密码:',function(data){
 *      var password = data;
 *  },true);
 */
var readLine = function (tips, callback, secure) {};


使用例:

var prompt = require('./prompt.js');
var svnInfo = {};
function svnPassword() {
    prompt.readLine('请输入svn密码:',function(data){
        // 返回false则表示数据不合法,需要重新输入
        if(!data) return false;
        svnInfo.pass = data;
        // 数据合法,返回true
        return true;
    },true);
}

function svnUsername() {
    prompt.readLine('请输入svn帐号:',function(data){
        // 返回false则表示数据不合法,需要重新输入
        if(!data) return false;
        svnInfo.user = data;
        // 数据合法,返回true
        return true;
    },false);
}
prompt.startStepByStep({
    svnUser:svnUsername,
    svnPass:svnPassword
});

运行一下,效果是这样的:


源代码:prompt.js

阿里巴巴-钉钉-开放平台,能力开放&开发者运营岗位招聘中, 期待你的加入!
钉钉开放,让应用开发更简单
充分开放,是钉钉的重要方向!除致力于为开发者打造丰富的开放API, 更易接入的场景化能力包, 完备的应用开发工具之外, 还需要持续构建开放能力的布道、开发者生态运营体系,包括培训、沙龙、大会、社区合作等等。业务在快速发展,我们也还需要更多优秀的小伙伴加入!

评论区域

line
  • hacke2 2015-01-16 10:05:08 回复
    能有阻塞式的吗?就是等待用户输入完才能执行下面的代码
  • blog 2014-09-09 00:15:21 回复
    博主您好,偶然间发现您的网站,感觉很多实用的内容,微信相关的,小弟现在研究一个问题,一直没有突破瓶颈,想查询指定的微信账号的历史消息,通过pc端的浏览器,有什么办法呢?