我想做一个带有控制台扩展的简单服务器http服务器。我找到了要从命令行数据读取的代码段。
var i = rl.createInterface(process.stdin, process.stdout, null); i.question('Write your name: ', function(answer) { console.log('Nice to meet you> ' + answer); i.close(); process.stdin.destroy(); });
好再问一次问题,我不能简单地使用while(done) { }循环?如果服务器在询问时间接收到输出,也会破坏线路。
while(done) { }
您不能执行“ while(done)”循环,因为这将需要阻塞输入,而node.js则不喜欢这样做。
而是设置一个在每次输入内容时都要调用的回调:
var stdin = process.openStdin(); stdin.addListener("data", function(d) { // note: d is an object, and when converted to a string it will // end with a linefeed. so we (rather crudely) account for that // with toString() and then trim() console.log("you entered: [" + d.toString().trim() + "]"); });