nodejs如何实现一个简单的命令行交互程序?
封面图
•
2026-01-16
•
nodejs
311
0
0
0
在 Node.js 中,你可以使用内置的 `readline` 模块来实现一个简单的命令行交互程序。这个模块允许你读取用户的输入,并根据输入执行相应的操作。 下面是一个简单的示例,展示如何创建一个命令行交互程序: --- ### ✅ 示例:简单的命令行问答程序 ```javascript const readline = require('readline'); // 创建 readline 接口 const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); // 问问题 rl.question('你叫什么名字? ', (name) => { console.log(`你好, ${name}!`); // 再问一个问题 rl.question('你喜欢 Node.js 吗?(yes/no) ', (answer) => { if (answer.toLowerCase() === 'yes') { console.log('太好了!你是个 Node.js 粉丝!'); } else { console.log('没关系,可以慢慢了解 Node.js!'); } // 结束程序 rl.close(); }); }); ``` --- ### 📌 运行方式 将上面的代码保存为 `app.js`,然后在终端中运行: ```bash node app.js ``` 程序会依次提示用户输入名字和是否喜欢 Node.js,并根据输入做出响应。 --- ### 🔁 更复杂的交互(循环) 如果你希望让用户持续输入命令,可以使用循环结构: ```javascript const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); function askQuestion() { rl.question('请输入命令 (exit 退出): ', (input) => { if (input.toLowerCase() === 'exit') { console.log('程序结束'); rl.close(); } else { console.log(`你输入的是: ${input}`); askQuestion(); // 递归调用,继续提问 } }); } askQuestion(); ``` --- ### ✅ 小结 - 使用 `readline` 模块处理命令行输入。 - `rl.question()` 用于提示用户输入。 - 可以通过递归或循环实现多轮交互。 - `rl.close()` 用于关闭交互。 如果你有更复杂的需求(比如支持历史记录、自动补全等),可以考虑使用第三方库如 [**commander**](https://www.npmjs.com/package/commander) 或 [**yargs**](https://www.npmjs.com/package/yargs) 来构建更强大的 CLI 工具。 需要我帮你实现一个更复杂的例子吗?
上一篇:
fs.watch和 fs.watchFile有什么区别?
下一篇:
nodejs中express如何获取路由的参数?
标题录入,一次不能超过6条
留言
评论