node js命令行交互

在使用npm init的時候,你可以根據提示輸入信息,命令行會根據你輸入的信息做進一步的信息反饋,這就是一個命令行交互的過程。這一小節,我們將介紹第三方模塊co-prompt,它能輕鬆實現命令行交互程序的開發。

安裝

co-prompt模塊依賴於co模塊,所以,兩個模塊我們都需要安裝。這裏只介紹本地安裝

Tips :
co模塊是非常有名的異步程序處理模塊,這裏不展開,建議自行學習。
學習co模塊之前,需要先了解一下ES6的新特性Generator 函數

$ npm install co co-prompt --save

co-prompt的使用

引用

var co = require('co');
var prompt = require('co-prompt');

API

普通文本提示

  • prompt(msg)
    • msg <String>:提示用戶信息的具體內容

例子:

密碼文本提示,密碼非明文顯示

  • prompt.password(msg, [mask])

    • msg <String>:提示用戶信息的具體內容
    • mask <String>:輸入密碼時的顯示替換字符,默認是"*"

多行文本提示

  • prompt.multiline(msg)
    • msg <String>:提示用戶信息的具體內容

確認提示信息

  • prompt.confirm(msg)
    • msg <String>:提示用戶信息的具體內容
    • 返回值 <Bool>:true|false

Tips:
confirm()方法只有在用戶輸入[y|yes|ok|true]這4個值(不區分大小寫)時,才返回true,其他情況都是false,所以,你的確認提示信息必須引導用戶輸入合適的值或者你程序的業務邏輯需要做必要調整

綜合例子

var co = require('co');
var prompt = require('co-prompt');

co(function*() {
    var username = yield prompt('username: ');
    var pwd = yield prompt.password('password: ');
    var desc = yield prompt.multiline('description:');
    var ok = yield prompt.confirm('are you sure?(yes|no)');
    console.log('hello %s %s\n', username, pwd);
    console.log('you describe yourself as:\n' + desc);
    console.log('answer: %s', ok);
    process.exit();
});

co和co-prompt API地址:

co 官網地址:https://www.npmjs.com/package/co

co-prompt 官網地址:https://www.npmjs.com/package/co-prompt

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章