如何在Node.js中从STDIN读取时处理退格?

时间:2013-08-25 17:16:59

标签: javascript node.js coffeescript stdin

我正在尝试使用此咖啡代码阅读用户输入:

_readEmail = (program, opts, c, u, cb) ->
    program.prompt 'email: ', /^.+@.+\..+$/, (email) =>
        u.email = email
        cb()

但是,退格处理不正确。它只是作为另一个字符读取,而不是删除字符。 有没有一种简单的方法来处理这个问题?

1 个答案:

答案 0 :(得分:1)

您应该使用readline模块:

var readline = require('readline');

var rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.question("What do you think of node.js? ", function(answer) {
  // TODO: Log the answer in a database
  console.log("Thank you for your valuable feedback:", answer);

  rl.close();
});

有关文档和示例,请参阅http://nodejs.org/api/readline.htmlhttps://sourcegraph.com/github.com/joyent/node/symbols/javascript/lib/readline.js