Node.js 的替代 raw_input 方法是什么?

3
我正在创建一款服务器应用程序,并希望能够像这样编写命令:start serverstop serverbroadcast("clients","Hello"),但我无法弄清如何在node中实现它。
我知道在Python中该怎么做。
while on == 1:
    cmd = raw_input("user> ")
    if cmd == "start server":
        startserver()
    elif cmd == "stop server":
        stopserver()
        on = 0

我看到一些适用于此的npm模块,但它们要求我编写参数,我想将其变成控制台类型应用程序。
谢谢。

感谢提及Python。正是因为这一点,我才偶然找到了这个答案! - jneuendorf
2个回答

5

这是最近从 commander.js 中删除的代码片段。类似这样的东西应该可以工作。

process.stdout.write("user> ");
process.stdin.setEncoding('utf8');
process.stdin.once('data', function(val){
    //look at val here and execute startserver() et al accordingly
}).resume();

这个可以工作,但是我有一个问题,执行完一个命令后,我想能够执行另一个命令,但不知何故,如果我将它放在循环中,它就无法工作,会一直向用户发送垃圾信息。 - C1D
1
我通过在函数内部调用该函数来解决了我的问题。谢谢 :) - C1D
我相信 process.stdin 最初是暂停的,因此恢复操作会启动它。 - Peter Lyons

1

此页面准确解释了您所需要的内容


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接