关于Node.js利用readline模块实现命令行输入的实例代码,可以按照以下步骤进行操作:
1. 安装Node.js
如果你还没有安装Node.js,可以去官网下载安装包进行安装。
2. 创建项目
首先,我们需要在本地创建一个项目,以便用来写我们的代码。
mkdir readline-demo
cd readline-demo
npm init -y
以上命令将会创建一个名为readline-demo
的目录,执行npm init -y
会自动创建一个默认的package.json
文件。
3. 安装 readline
模块
使用npm命令安装 readline
模块。
npm install readline --save
4. 开始写代码
现在我们可以开始写readline模块的代码了。在项目根目录创建一个index.js
文件,输入以下内容:
// 引入readline模块
const readline = require('readline');
// 创建readline接口实例
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// 函数封装,设置递归调用
function question(title) {
return new Promise((resolve, reject) => {
rl.question(title, (answer) => {
if(answer) {
resolve(answer);
} else {
question(title).then((result) => {
resolve(result);
});
}
});
});
}
// 测试
question('please input your name:').then((value) => {
console.log(`Hello ${value}!`);
rl.close();
});
代码实现了一个简单的交互操作,要求用户输入一个名字,控制台将输出问候语"Hello xxx!"。代码中的函数封装了readline的递归调用,以确保用户必须输入有效数据。如果输入为空,则会再次要求输入。
5. 执行代码
在终端中运行以下命令,运行代码
node index.js
执行命令后,将出现以下提示,并等待用户输入:
please input your name:
用户输入名字后,按下回车,控制台将输出“Hello xxx!”。
示例2
下面再演示一个稍微复杂一点的示例,我们将输入一个数字,然后计算0到该数字的和。
// 引入readline模块
const readline = require('readline');
// 创建readline接口实例
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// 递归算法计算数字和
function sum(n) {
if(n === 0) {
return 0;
} else {
return n + sum(n-1);
}
}
// question方法封装
function question(title) {
return new Promise((resolve, reject) => {
rl.question(title, (answer) => {
if(answer) {
resolve(answer);
} else {
question(title).then((result) => {
resolve(result);
});
}
});
});
}
async function main() {
let num = await question('please input a number:');
let result = sum(parseInt(num));
console.log(`the sum of 0 to ${num} is ${result}`);
rl.close();
}
// 启动程序
main();
代码实现了获取用户输入数字,计算0到该数字的和,并在控制台输出结果。和第一个示例类似,也使用了递归调用确保用户必须输入有效数据。
总结
以上是使用Node.js中readline模块实现命令行输入的完整攻略,包括安装Node.js、安装readline
模块、编写代码等。如果想要了解更多有关readline模块的详细内容,可以查看Node.js官方文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nodejs利用readline提示输入内容实例代码 - Python技术站