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