📜  Node.js prompt.get() 方法(1)

📅  最后修改于: 2023-12-03 14:44:40.104000             🧑  作者: Mango

Node.js prompt.get() 方法

在 Node.js 中,prompt.get() 方法是一个用于从命令行读取用户输入的包。它可以让开发人员从终端读取简单的用户输入,例如字符串、数字或布尔值。

安装

使用 npm 安装 prompt 包:

npm install prompt
使用方法

首先,我们需要将 prompt 包导入我们的代码:

const prompt = require('prompt');

接下来,我们可以使用 prompt.get() 方法读取用户输入:

prompt.get(['username', 'email'], function (err, result) {
  if (err) { return onErr(err); }
  console.log('输入的用户名是: ' + result.username);
  console.log('输入的邮箱是: ' + result.email);
});

在上面的示例中,我们使用 prompt.get() 方法从用户那里读取了两个输入,即用户名和电子邮件地址。该方法需要传递两个参数:一个包含所需输入的属性的数组和一个回调函数。回调函数将两个参数:一个错误对象和一个包含用户输入的结果对象。

定制提示

我们可以使用 prompt.start() 方法定制提示符的前缀和后缀。

prompt.start();

prompt.get(['username', 'email'], function (err, result) {
  if (err) { return onErr(err); }
  console.log('输入的用户名是: ' + result.username);
  console.log('输入的邮箱是: ' + result.email);
});

在上面的示例中,我们声明了一个 prompt.start() 方法,它将为每次输入添加 "prompt: " 前缀。我们也可以使用 prompt.messageprompt.delimiter 定制前缀和后缀。

设置默认值

我们可以使用 default 属性将默认值设置为任何输入属性。

var properties = [
  {
    name: 'username',
    default: 'admin'
  },
  {
    name: 'email',
    default: 'admin@example.com'
  }
];

prompt.get(properties, function (err, result) {
  if (err) { return onErr(err); }
  console.log('输入的用户名是: ' + result.username);
  console.log('输入的邮箱是: ' + result.email);
});

在上面的示例中,我们将默认值设置为 adminadmin@example.com

使用验证器

prompt 包还提供了验证用户输入的方法。我们可以使用 validator 属性来检查输入的数据。

var schema = {
  properties: {
    name: {
      pattern: /^[a-zA-Z\s\-]+$/,
      message: '名字只能使用字母、空格和连字符。',
      required: true
    },
    email: {
      pattern: /^[^\s@]+@[^\s@]+\.[^\s@]+$/,
      message: '请输入有效邮箱地址。',
      required: true
    },
    age: {
      pattern: /^[0-9]+$/,
      message: '年龄只能是数字。',
      conform: function (value) {
        return value >= 18;
      }
    }
  }
};

prompt.start();

prompt.get(schema, function (err, result) {
  if (err) { return onErr(err); }
  console.log('输入的名字是: ' + result.name);
  console.log('输入的邮箱是: ' + result.email);
  console.log('输入的年龄是: ' + result.age);
});

在上面的示例中,我们使用 validator 属性对用户输入进行检查,并展示出错误信息。在 age 属性中,我们使用了 conform 函数来确保年龄大于等于 18 岁。

总结

在 Node.js 中,使用 prompt.get() 方法读取用户输入非常简单。我们可以使用验证器、默认值和定制提示等功能来定制用户输入。