question-cache中文文档|question-cache js中文教程|解析

npm npmdoc 3年前 (2021-12-27) 406次浏览

question-cache中文文档|question-cache js中文教程|解析

安装命令:npm i question-cache

问题缓存 NPM 版本 NPM 下载 构建状态

查询器的包装器,可以轻松创建和有选择地重用问题。

安装

使用npm安装

$ npm install --save question-cache

例子

'use strict';
 
var Store = require('data-store');
var hints = new Store('example-hints-store');
var questions = require('question-cache');
 
questions()
  .use(function() {
    this.on('ask', function(val, key, question) {
      question.default = hints.get(key);
    });
    this.on('answer', function(val, key) {
      hints.set(key, val);
    });
  })
  .set('first', 'What is your first name?')
  .set('last', 'What is your last name?')
  .set('foo', 'What is foo?', {
    when: function() {
      // console.log(arguments)
    }
  })
  .ask(function(err, answers) {
    console.log(answers);
  });

屏幕截图

屏幕截图 2015-07-13 at 8 05 20 am

请参阅工作示例

基本用法

请参阅工作示例

var questions = require('question-cache')();
 
// question type "input" is used by default
questions
  .set('name', 'What is your name?')
  .ask('name', function (err, answers) {
    console.log(answers);
  });

询问者2

您可以选择将自己的查询器实例传递给构造函数:

// on the options
var questions = require('question-cache');
var questions = new Questions({
  inquirer: require('inquirer2')
});
 
// or if inquirer is the only thing passed
var questions = new Questions(require('inquirer2'));

入门

question-cache 是对queryer2的封装如果您有任何与界面相关的问题(如滚动、颜色、样式等),请在inquirer2项目上创建问题

问问题

提出问题的最简单方法是传递一个字符串和一个回调:

questions.ask('name', function (err, answers) {
  console.log(answers);
});

询问所有缓存的问题

questions.ask(function (err, answers) {
  console.log(answers);
});

应用程序接口

问题

Questions使用给定的创建 的实例options

参数

  • options {Object} : 问题缓存选项

例子

var Questions = new Questions(options);

。放

调用addQuestion,唯一的区别是.set返回questions实例并.addQuestion返回问题对象。所以.set如果你想链接问题,或者.addQuestion如果你需要创建的问题对象,请使用。

参数

  • name {Object|String}:问题名称、消息(字符串)或问题/选项对象。
  • value {Object|String}:问题消息(字符串)或问题/选项对象。
  • options {Object|String}:问题/选项对象。

例子

questions
  .set('drink', 'What is your favorite beverage?')
  .set('color', 'What is your favorite color?')
  .set('season', 'What is your favorite season?');
 
// or
questions.set('drink', {
  type: 'input',
  message: 'What is your favorite beverage?'
});
 
// or
questions.set({
  name: 'drink'
  type: 'input',
  message: 'What is your favorite beverage?'
});

.add问题

添加稍后要问的问题。创建Question的实例,因此Question可以使用任何选项或设置。此外,默认type值为input如果用户未定义。

参数

  • name {Object|String}:问题名称、消息(字符串)或问题/选项对象。
  • value {Object|String}:问题消息(字符串)或问题/选项对象。
  • options {Object|String}:问题/选项对象。

例子

questions.addQuestion('drink', 'What is your favorite beverage?');
 
// or
questions.addQuestion('drink', {
  type: 'input',
  message: 'What is your favorite beverage?'
});
 
// or
questions.addQuestion({
  name: 'drink'
  type: 'input',
  message: 'What is your favorite beverage?'
});

.选择

从一组值创建一个“选择”问题。

参数

  • key {String} : 问题键
  • msg {String} : 问题信息
  • items {Array} : 选择项
  • options {Object|Function} : 问题选项或回调函数
  • callback {Function} : 回调函数

例子

questions.choices('foo', ['a', 'b', 'c']);
 
// or
questions.choices('foo', {
  message: 'Favorite letter?',
  choices: ['a', 'b', 'c']
});

。列表

从一组值创建一个“列表”问题。

参数

  • key {String} : 问题键
  • msg {String} : 问题信息
  • list {Array} : 列表项
  • queue {String|Array}:名称或问题名称数组。
  • options {Object|Function} : 问题选项或回调函数
  • callback {Function} : 回调函数

例子

questions.list('foo', ['a', 'b', 'c']);
 
// or
questions.list('foo', {
  message: 'Favorite letter?',
  choices: ['a', 'b', 'c']
});

.rawlist

从一组值创建一个“原始列表”问题。

参数

  • key {String} : 问题键
  • msg {String} : 问题信息
  • list {Array} : 列表项
  • queue {String|Array}:名称或问题名称数组。
  • options {Object|Function} : 问题选项或回调函数
  • callback {Function} : 回调函数

例子

questions.rawlist('foo', ['a', 'b', 'c']);
 
// or
questions.rawlist('foo', {
  message: 'Favorite letter?',
  choices: ['a', 'b', 'c']
});

。扩张

从一组值创建一个“扩展”问题。

参数

  • key {String} : 问题键
  • msg {String} : 问题信息
  • list {Array} : 列表项
  • queue {String|Array}:名称或问题名称数组。
  • options {Object|Function} : 问题选项或回调函数
  • callback {Function} : 回调函数

例子

questions.expand('foo', ['a', 'b', 'c']);
 
// or
questions.expand('foo', {
  message: 'Favorite letter?',
  choices: ['a', 'b', 'c']
});

。确认

从一组值创建一个“选择”问题。

参数

  • queue {String|Array}:名称或问题名称数组。
  • options {Object|Function} : 问题选项或回调函数
  • callback {Function} : 回调函数

例子

questions.choices('foo', ['a', 'b', 'c']);
// or
questions.choices('foo', {
  message: 'Favorite letter?',
  choices: ['a', 'b', 'c']
});

。得到

如果未找到问题name,请获取问题或分组name您还可以使用 进行直接查找quesions.cache['foo']

参数

  • name {细绳}
  • returns {Object}:返回问题对象。

例子

var name = questions.get('name');
//=> question object

。拥有

如果questions.cachequestions.groups有问题,则返回 true name

  • returns {String} : 要检查的问题的名称

例子

var name = questions.has('name');
//=> true

.del

使用点符号删除给定的问题或任何具有给定命名空间的问题。

  • returns {String} : 要删除的问题的名称

例子

questions.del('name');
questions.get('name');
//=> undefined
 
// using dot-notation
questions.del('author');
questions.get('author.name');
//=> undefined

.clearAnswers

清除所有缓存的答案。

例子

questions.clearAnswers();

.clearQuestions

清除缓存中的所有问题。

例子

questions.clearQuestions();

。清除

清除所有缓存的问题和答案。

例子

questions.clear();

。问

使用给定options和回调提出一个或多个问题

参数

  • queue {String|Array}:名称或问题名称数组。
  • options {Object|Function} : 问题选项或回调函数
  • callback {Function} : 回调函数

例子

questions.ask(['name', 'description'], function(err, answers) {
  console.log(answers);
});

.归一化

规范化给定值以返回问题键数组。

参数

  • {[类型]} : 键
  • returns {[类型]}

点符号

请参阅工作示例

可以使用对象路径表示法(例如a.b.c缓存问题

例子

以下所有内容都将缓存在name对象上:

questions
  .set('name.first', 'What is your first name?')
  .set('name.middle', 'What is your middle name?')
  .set('name.last', 'What is your last name?')

点符号用法

当使用点符号缓存时,可能会提出几种不同的问题。

点符号用法

问一个

问一个name问题:

questions.ask('name.first', function (err, answers) {
  console.log(answers);
});

问所有“姓名”问题

name提出所有问题firstmiddlelast

questions.ask('name', function (err, answers) {
  console.log(answers);
});

一系列问题

询问以下具体问题name

questions.ask(['name.first', 'name.last'], function (err, answers) {
  console.log(answers);
});

问所有问题

询问以下具体问题name

questions
  .set('name.first', {
    message: 'What is your first name?',
  })
  .set('name.last', {
    message: 'What is your last name?',
  })
  .set('foo', {
    message: 'Any thoughts about foo?',
  })
 
questions.ask(['name', 'foo'], function (err, answers) {
  console.log(answers);
});

嵌套问题

根据反馈,一次提出一个问题:

questions.ask('name.first', function (err, answers) {
  console.log(answers);
  //=> {name: { first: 'Brian' }}
 
  questions.ask('name.last', function (err, answers) {
    console.log(answers);
    //=> {name: { last: 'Woodward' }}
  });
});

更多例子

点符号和非点符号的混合

鉴于您有以下问题:

questions
  .set('name.first', 'What is your first name?')
  .set('name.last', 'What is your last name?')
  .set('foo', 'Any thoughts about foo?')
  .set('bar', 'Any thoughts about bar?')

以下将提出问题:name.first,name.lastfoo

questions.ask(['name', 'foo'], function (err, answers) {
  console.log(answers);
});

关于

相关项目

贡献

拉取请求和星星总是受欢迎的。对于错误和功能请求,请创建问题

构建文档

(本文档由verb-generate-readme动词生成器)生成,请不要直接编辑readme。对readme的任何更改必须在.verb.md中进行。)

要使用动词生成自述文件和 API 文档

$ npm install -g verb verb-generate-readme && verb

运行测试

安装开发依赖:

$ npm install -d && npm test

作者

乔恩·施林克特

执照

版权所有 © 2016,乔恩·施林克特MIT 许可发布


此文件由verb-generate-readme v0.1.30 于2016 年8 月17 日生成。

项目贡献人员列表:


极客公园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:question-cache中文文档|question-cache js中文教程|解析
喜欢 (0)
.excerpt .focus {display:none}