Node.js 中的 Input()

rul*_*ler 2 javascript 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'
Run Code Online (Sandbox Code Playgroud)

Node.js 可以做同样的事情吗?如果是这样怎么办?如果您有任何相关文档,这也会很有用,因此如果我有任何进一步的问题,我可以参考它们。我的主要问题是 Node.js 没有像 python 那样等待我提交问题的回复/答案。

Mar*_*jer 5

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();
    }
});
Run Code Online (Sandbox Code Playgroud)

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