NodeJS教程

命令行交互和询问

Preview
  • Node.js 命令行交互和询问
  • 命令行交互
  • 询问
  • 实现交互式命令行程序
  • 总结

Node.js 命令行交互和询问

在 Node.js 中,我们可以使用 readline 模块来实现命令行交互和询问。该模块提供了一个接口,可以读取用户在命令行中的输入,并对输入进行处理和响应。

命令行交互

使用 readline 模块的 createInterface 方法创建一个 Interface 实例,然后使用该实例的 question 方法向用户提问。例如:

const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.question('What is your name? ', (answer) => {
  console.log(`Hello, ${answer}!`);
  
  rl.close();
});

在命令行中执行该脚本,会提示用户输入名字。用户输入名字后,会输出 Hello, ${name}! 的信息。

询问

除了命令行交互外,我们还可以使用 readline 模块来实现询问功能。例如:

const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.question('Do you like Node.js? ', (answer) => {
  if (answer.toLowerCase() === 'yes') {
    console.log('Great!');
  } else {
    console.log('Oh no!');
  }
  
  rl.close();
});

在命令行中执行该脚本,会提示用户回答是否喜欢 Node.js。根据用户的回答,会输出不同的信息。

实现交互式命令行程序

使用 readline 模块,我们可以实现一个简单的交互式命令行程序。例如:

const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

function askQuestion() {
  rl.question('Please enter a command: ', (answer) => {
    if (answer === 'exit') {
      rl.close();
    } else {
      console.log(`You entered: ${answer}`);
      askQuestion();
    }
  });
}

askQuestion();

在命令行中执行该脚本,会提示用户输入命令。如果用户输入 exit,则程序退出。否则,会输出用户输入的命令,并继续提示用户输入命令。

总结

使用 readline 模块,我们可以实现命令行交互和询问功能,以及实现交互式命令行程序。这些功能可以帮助我们更好地与用户交互,提高程序的易用性和互动性。