如何从一个node.js脚本与多个控制台窗口进行交互?
到目前为止,我已经研究了一下,但没有找到任何可以涵盖我案例的内容。
我想要完成的是拥有一个主控制台窗口,它可以读取我的输入,
1. action#1
2. action#2
> do 1 // select action
它会将其输出重定向到另一个名为Logger
的控制台窗口,该窗口显示用户选择的操作的stdout
,但保留主要"选择操作"控制台窗口清洁。
答案 0 :(得分:0)
我设法找到解决方法,因为我想一直使用node.js。
<强> start.js
强>
var cp = require("child_process");
cp.exec('start "Logger" cmd /K node logger.js',[],{});
cp.exec("start cmd /K node startAdminInterface.js",[],{});
setTimeout(function(){process.exit(0);},2000);
<强> logger.js
强>
var net = require('net');
net.createServer(function (socket) {
socket.on('data',function(d){
console.log(": "+d.toString("utf8"));
});
socket.on('error',function(err){
console.log("- An error occured : "+err.message);
});
}).listen(9999);
<强> startAdminInterface.js
强>
var net = require("net");
var logger = net.connect(9999);
var readline = require('readline'),
rl = readline.createInterface(process.stdin,process.stdout);
rl.setPrompt('> ');
rl.prompt();
rl.on('line', function(line) {
logger.write(line);
rl.prompt();
}).on('close', function() {
process.exit(0);
});
底部,排除其解决方法并不完全是我所追求的,让我看到潜力,在logger.js
它可以从多个来源收听,这对我正在构建的应用程序来说是一个巨大的优势。