[英]Input() in for 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那樣等待我提交對問題的答復/答案。
您可以使用提示來讀取用戶的輸入。
示例代碼:
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);
});
})();
}
希望對您有所幫助,您可以從中創建一個例程,並在需要時使用它。
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不同)。
我認為kbd模塊( https://npmjs.org/package/kbd )是您所需要的。
這是一個小的C ++附加模塊,可在鍵盤上進行同步讀取。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.