簡體   English   中英

Node.js中的Input()

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM