如何生成第二个控制台窗口并对其进行读取和写入?

问题描述 投票:0回答:1

我有一个节点服务器,它显示终端中发生的事情的日志。

我想在其中放置一个 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 来执行此操作,并且生成的窗口最终不会执行任何操作。

有没有办法生成一个我可以读取和写入的窗口?

javascript node.js terminal child-process read-eval-print-loop
1个回答
0
投票

嗯,希望这些信息有帮助

节点。 Node.js 是一个单线程、开源、跨平台运行时环境,用于构建快速且可扩展的服务器端和网络应用程序。它运行在 V8 JavaScript 运行时引擎上,采用事件驱动、非阻塞 I/O 架构,这使得它高效且适合实时应用程序。enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.