Npm提示-自定义验证和多行消息?

佩绍·赫里斯托夫

我正在开发一个基于nodejs和npm包“ prompt”的CLI程序。假设我要显示此提示,将输入内容放入变量中pet

Choose a pet:
(1) - Cat
(2) - Dog
(3) - Fish
(4) - Rabbit
(5) - Rat
: > 

基本上,我已经完成了功能,但是遇到了以下问题:

  1. 如果我使用该conform功能进行自定义验证-那么我的自定义消息-多行文本-永远不会出现。变量的名称pet--仅出现。但是我想进行验证,例如,我想确保用户不会输入333

  2. 如果删除conform自定义验证-我可以使用多行文本,但是随后会发生其他事情:闪烁的矩形(发生输入的地方)与多行文本重叠。而且我无法blink在多行消息的最后一行之后输入。

(在上面的示例中,闪烁发生在数字5上。)

知道如何解决我遇到的两个问题吗?... :)

==================编辑:添加了代码示例===================

这就是我生成多行文本的方式:

// generate the multiline text .. 
var petsMessage = 'Choose a pet: \n';
var pets = [...];
for(var i = 0, l = pets.length; i < l; i++) {
    petsMessage += ' (' + (i+1) + ') - ' + pets[i] + "\n";
}

这是生成多行文本但没有验证的提示的方法:

// define the prompt stuff .. 
var promptInfo = {
    properties: {
        Pet: {
            message: petsMessage,
            required: true
        },
    }
};

这是通过验证进行的,但是多行消息不起作用:

// define the prompt stuff .. 
var promptInfo = [
    {
        name: 'Pet',
        message: petsMessage,
        required: true,
        conform: function(value) {

            value = parseInt(value);

            if(value > 0 && value < pets.length) {
                return true;
            } else {
                return false;
            }
        }
    }
];
亚历克斯·米恰利迪斯

我相信问题在于,在带有验证的第二个片段中,您在message属性中分配了实际问题,您应该在说明中进行分配。message属性是指错误消息。请尝试以下方法:

var petsMessage = 'Choose a pet: \n';
var pets = ["dog","cat","frog"];
for(var i = 0, l = pets.length; i < l; i++) {
    petsMessage += '\t (' + (i+1) + ') - ' + pets[i] + "\n";
}
var prompt = require('prompt');
var promptInfo = [
    {
        name: 'Pet',
        description: petsMessage,
        required: true,
        message: 'Options allowed:: 1'+'-'+pets.length,
        conform: function(value) {

            value = parseInt(value);

            return value > 0 && value <= pets.length

        }
    }
];

prompt.start();

prompt.get(promptInfo, function (err, result) {
    console.log('you Choose',result,'::::',pets[result.Pet-1])
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

自定义adb提示

来自分类Dev

提示自定义答案

来自分类Dev

Shell提示自定义和cmd行为

来自分类Dev

使用Access VBA在批量电子邮件中提示自定义消息

来自分类Dev

从自定义提示将消息转发到另一个对话框

来自分类Dev

我可以在生物识别提示中自定义失败消息吗?

来自分类Dev

Polymer CoreInput设置自定义验证消息和反向

来自分类Dev

simple_form和自定义验证消息

来自分类Dev

Polymer CoreInput设置自定义验证消息和反向

来自分类Dev

MVC Windows身份验证提示输入Windows凭据,并忽略自定义错误配置

来自分类Dev

JavaScript自定义工具提示

来自分类Dev

自定义AngularJS引导工具提示

来自分类Dev

自定义命令外壳默认提示

来自分类Dev

自定义/样式提示窗口?

来自分类Dev

自定义mongo-hacker提示

来自分类Dev

绕行提示到自定义功能

来自分类Dev

如何自定义MessageBox提示?

来自分类Dev

jqvMap自定义工具提示

来自分类Dev

如何自定义PowerShell继续提示?

来自分类Dev

自定义命令外壳默认提示

来自分类Dev

自定义bash提示存在错误

来自分类Dev

自定义排序AutoCompleteTextView下拉提示

来自分类Dev

自定义模块的Pycharm类型提示

来自分类Dev

如何自定义root提示?

来自分类Dev

根据组自定义bash提示

来自分类Dev

自定义样式的工具提示

来自分类Dev

如何自定义终端提示颜色?

来自分类Dev

Dialogflow Webhook UpdatePermissions 自定义提示

来自分类Dev

使用GCMReceiver和GcmListenerService时如何自定义通知显示和提示音