我有一个节点服务器,它显示终端中发生的事情的日志。
我想在其中放置一个 repl 服务器,这样我就可以在服务器运行时控制它。
但是我不希望日志和repl服务器相互冲突,所以我想将repl服务器放在单独的窗口中。
但是,创建第二个控制台窗口的所有方法都要求您启动另一个进程,这意味着我无法控制 stdio 流。 (至少从我自己尝试过并遵循指南之后)
这是我最成功的尝试:
(
index.js
)
let repl = require('repl'),
cp = require('child_process'),
child = cp.spawn("cmd.exe", ["/c", "node", "blank.js"], { detached: true });
repl.start({
stdin: child.stdin,
stdout: child.stdout,
stderr: child.stderr,
useGlobal: true
});
// example log activity
setInterval(() => console.log(Math.random()), 1000);
(
blank.js
)
// keep the window open
setInterval(a=>a,2**31-1);
当它生成一个 repl 服务器时,它会使用父进程窗口的 stdio 来执行此操作,并且生成的窗口最终不会执行任何操作。
有没有办法生成一个我可以读取和写入的窗口?