input()为Node.js

我来自Python 3的Node.js,想知道Node.js是否有我可以使用的东西,基本上和Python的input相同,比如说我们有这样的代码:

 def newUser(user = None, password = None): if not user: user = input("New user name: ") if not password: password = input("Password: ") return "Welcome, your user name is %s and your password is %s" % (user, password) # Option one >>> newUser(user = "someone", password = "myPassword") 'Welcome your user name is someone and your password is myPassword' # Option Two >>> newUser() New User name: someone Password: myPassword 'Welcome your user name is someone and your password is myPassword' 

node.js可以做同样的事情吗? 如果这样怎么样? 如果你有任何有用的文档,那么我可以回头看看他们是否还有其他问题。 我的主要问题是node.js没有等我提交我的回复/答案像python这样的问题。

Readline模块: http : //nodejs.org/api/readline.html

这里是你的例子重写为Node.js:

 var readline = require('readline'); var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.question("New user name:", function(user) { rl.question("New password:", function(password) { var newUser = new User(user, password); // do something... rl.close(); } }); 

它看起来有点不同,因为控制台使用非阻塞IO(像Node.js的其余部分,而不像Python)。

您可以使用提示来阅读来自用户的input。

示例代码:

 var util = require('util'); var prompt = require('prompt'); // start the prompt prompt.start(); // text that appears on each prompt // prompt.message = 'Enter'; // prompt.delimiter = ' → '; // schema to take user input var schema = { properties: { username: { message: 'Username', required: true }, password: { name: "Password", required: true } } }; function newUser(username, password, callback) { if (typeof username === 'function') { callback = username; username = null; password = null; } var respond = function (err, newuser) { callback(null, util.format('Welcome, your user name is %s and your password is %s', newuser.username, newuser.password)); } if (!username && !password) { prompt.get(schema, respond); } else { var newuser = { username: username, password: password }; respond(null, newuser); } } /** Test Code --------------------------------------------------------------- */ if (require.main === module) { (function () { var logcb = function (err, res) { console.log(err || res); } // new user with username and password newUser('hello', 'password', function (err, res) { logcb(err, res); // new user with prompt newUser(logcb); }); })(); } 

希望这有帮助,你可以使图书馆的例程,并在每次需要时使用它。

我认为,您需要的是kbd模块( https://npmjs.org/package/kbd )。

这是一个小小的C ++附加模块,可以在键盘上进行同步读取。