亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

node如何實現(xiàn)cmd彈窗交互之inquirer

 更新時間:2023年10月30日 09:42:10   作者:JadeFlicker  
這篇文章主要介紹了node如何實現(xiàn)cmd彈窗交互之inquirer問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

node實現(xiàn)cmd彈窗交互——inquirer

實現(xiàn)cmd彈窗交互

安裝inquirer包

npm i inquirer

引入inquirer包

var inquirer = require('inquirer');

// console.log('Hi, welcome to Node Pizza');

var questions = [
  {
    type: 'input',
    name: 'toBeDelivered',//這個參數(shù)
    message: '請選擇文件夾',
  }
];

inquirer.prompt(questions).then(answers => {
  console.log(answers);
});

questions為配置參數(shù)對象

  • type:(String)提示的類型。默認(rèn)值:input-可能的值:input,number,confirm, list,rawlist,expand,checkbox,password,editor
  • name:(String)將答案存儲在答案哈希中時使用的名稱。如果名稱包含句點,它將在答案哈希中定義路徑
  • message:(String | Function)要打印的問題。如果定義為函數(shù),則第一個參數(shù)將是當(dāng)前查詢者會話答案。缺省值為name(后跟冒號)。

node命令交互inquirer

用過vue或者react的用腳手架新建項目的應(yīng)該都進(jìn)行過命令交互,vue創(chuàng)建的時候會讓你選擇vue2還是vue3,也有多選要什么配置,也有輸入y或者n選擇是否用history路由等,這其實用inquire這個包都能實現(xiàn)。

環(huán)境跟之前commander使用是一樣的,初始化之后配置bin和npm link一下,這邊就不再說了。

安裝inquirer

npm install inquirer

引入

var inquirer = require(‘inquirer');

inquirer主要知道這幾個類型類型,其他的有興趣再去了解:

  • input
  • confirm
  • list
  • checkbox
  • password

方法用prompt就行,另外兩個registerPrompt和createPromptModule也可以自己去了解。

我們按照順序都展示出來,不管輸入還是選擇了什么,都繼續(xù)下一種類型展示,代碼:

typeInput();

function typeInput() {
  inquirer.prompt([ {
    name: 'input',
    type: 'input',
    message: 'input: year, month and day',
    default: 'year'
  }]).then((res) => {
    console.log('Year: ' + res.input);
    typeConfirm();
  })
}

function typeConfirm(){
  inquirer.prompt([ {
    name: 'confirm',
    type: 'confirm',
    message: 'confirm',
    default: true
  }]).then((res) => {
    console.log('confirm: ' + res.confirm);
    typeList();
  })
}

function typeList(){
  inquirer.prompt([ {
    name: 'list',
    type: 'list',
    message: 'list',
    choices: ['red', 'blue', 'yellow'],
    default: 1
  }]).then((res) => {
    console.log('list: ' + res.list);
    typeCheckbox();
  })
}

function typeCheckbox(){
  inquirer.prompt([ {
    name: 'checkbox',
    type: 'checkbox',
    message: 'checkbox',
    choices: ['red', 'blue', 'yellow'],
    default: ['blue']
  }]).then((res) => {
    console.log('checkbox: ' + res.checkbox);
    typePassword();
  })
}

function typePassword(){
  inquirer.prompt([ {
    name: 'password',
    type: 'password',
    message: 'password',
    mask: false //是否出現(xiàn)*號
  }]).then((res) => {
    console.log('password: ' + res.password);
  })
}

prompt方法返回的是Promise,用的時候也可以配合async和await,返回的字段就是name字段:

typeCheckbox();
async function typeCheckbox() {
  let {checkbox} = await inquirer.prompt([
    {
      name: 'checkbox',
      type: 'checkbox',
      message:'checkbox',
      choices: ['red', 'blue', 'yellow'],
      default: ['blue']
    }
  ]);
  console.log('checkbox ' + checkbox);
}

效果:

commander和inquirer可以說是命令行交互最基本的兩個包,這兩個包的基本用法已經(jīng)足夠我們?nèi)ラ_發(fā)一個cli的命令行交互操作。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • node puppeteer(headless chrome)實現(xiàn)網(wǎng)站登錄

    node puppeteer(headless chrome)實現(xiàn)網(wǎng)站登錄

    這篇文章主要介紹了node puppeteer(headless chrome)實現(xiàn)網(wǎng)站登錄,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • 淺析Node在構(gòu)建超媒體API中的作用

    淺析Node在構(gòu)建超媒體API中的作用

    超媒體即Hypermedia,是一種采用非線性網(wǎng)狀結(jié)構(gòu)對塊狀多媒體信息(包括文本、圖像、視頻等)進(jìn)行組織和管理的技術(shù)。超媒體的概念類似于早期的超文本,超文本的本質(zhì)是在文本內(nèi)容加上鏈接,這樣就構(gòu)成了超文本。超媒體也類似。
    2014-07-07
  • Async/Await替代Promise的6個理由

    Async/Await替代Promise的6個理由

    這篇文章主要介紹了Async/Await替代Promise的6個理由,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,,需要的朋友可以參考下
    2019-06-06
  • NodeJS使用formidable實現(xiàn)文件上傳

    NodeJS使用formidable實現(xiàn)文件上傳

    這篇文章主要為大家詳細(xì)介紹了NodeJS使用formidable實現(xiàn)文件上傳的相關(guān)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Nodejs + Websocket 指定發(fā)送及群聊的實現(xiàn)

    Nodejs + Websocket 指定發(fā)送及群聊的實現(xiàn)

    這篇文章主要介紹了Nodejs + Websocket 指定發(fā)送及群聊的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Node.js中使用Buffer編碼、解碼二進(jìn)制數(shù)據(jù)詳解

    Node.js中使用Buffer編碼、解碼二進(jìn)制數(shù)據(jù)詳解

    這篇文章主要介紹了Node.js中使用Buffer編碼、解碼二進(jìn)制數(shù)據(jù)詳解,Buffer支持ascii、utf8、ucs2、base64等編碼格式,需要的朋友可以參考下
    2014-08-08
  • 詳解nodejs微信公眾號開發(fā)——4.自動回復(fù)各種消息

    詳解nodejs微信公眾號開發(fā)——4.自動回復(fù)各種消息

    這篇文章主要介紹了詳解nodejs微信公眾號開發(fā)——4.自動回復(fù)各種消息,非常具有實用價值,需要的朋友可以參考下
    2017-04-04
  • node.js中事件觸發(fā)器events的使用方法實例分析

    node.js中事件觸發(fā)器events的使用方法實例分析

    這篇文章主要介紹了node.js中事件觸發(fā)器events的使用方法,結(jié)合實例形式分析了node.js事件觸發(fā)器events的功能、原理及基本使用方法,需要的朋友可以參考下
    2019-11-11
  • node.js實現(xiàn)多圖片上傳實例

    node.js實現(xiàn)多圖片上傳實例

    這篇文章主要介紹了node.js實現(xiàn)多圖片上傳實例,包括路由、控制器和視圖的源碼,重點在圖片上傳處理程序,需要的朋友可以參考下
    2014-06-06
  • docker中編譯nodejs并使用nginx啟動

    docker中編譯nodejs并使用nginx啟動

    這篇文章主要介紹了docker中編譯nodejs并使用nginx啟動的相關(guān)資料,需要的朋友可以參考下
    2017-06-06

最新評論